LINUX.ORG.RU

sed: переменная/команда


0

1

Необходимо заменить

s|$(datadir)/doc/$(PACKAGE)|/usr/doc/${pkgname}-${pkgver}|g
при помощи sed и ключей -i -e применяю данное на файл, сообщается, что
datadir: команда не найдена
PACKAGE: команда не найдена
Не подскажите, как правильно такие $(вещи) править?

★★★★★

[del@del-arch ~]$ echo pkg > testfile
[del@del-arch ~]$ name=pkg
[del@del-arch ~]$ sed -i -e "s/$name/replaced/g" ./testfile 
[del@del-arch ~]$ cat testfile 
replaced
DELIRIUM ☆☆☆☆☆
()

Экранировать от оболочки, типа

s~\$\(datadir\)/doc/\$\(PACKAGE\)~/usr/doc/\${pkgname}-\${pkgver}~g

nitz ★★
()

в данном случае | рассматривается как конвейер, а знаки $(...) - как результат выполнения команд, записанных в них (аналогично ``, но иначе)

backbone ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.