Как часть сценария оболочки, я хочу заменить

LIBTOOL='$(SHELL) $(top_builddir)/libtool'

с

LIBTOOL=./libtool

Номер строки источника - 528. Я пытаюсь использовать sed, как следует

sed -e '528 s/LIBTOOL=\'\$(SHELL) \$(top_builddir)\/libtool'/LIBTOOL=.\/libtool/'**

но я получил ошибку.

Так что любая помощь будет оценена.

1 ответ1

0

В вашем выражении есть еще одна неэкранированная одинарная кавычка (смотрите \/libtool'/LIBTOOL). Вот что у меня работает:

sed "528 s/LIBTOOL='\$(SHELL) \$(top_builddir)\/libtool'/LIBTOOL='.\/libtool'/" filename.ext

Обратите внимание, что я не включил параметр -e , так как он ожидает, что имя файла будет читать его выражения (и вы предоставляете выражение в командной строке - не путайте этот файл с файлом, который нужно обработать).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .