sed: -e выражение # 1, char 40: неопределенная команда `s ' - PullRequest
0 голосов
/ 01 сентября 2018

Когда я запускаю команду

sed -i.backup "/proxySettings['nginxCacheSize']/s/$/ . " inactive=5h"/"

Я получаю ошибку

sed: -e выражение # 1, символ 40: неопределенная команда `s '

Есть идеи как это исправить?

1 Ответ

0 голосов
/ 04 сентября 2018

Во-первых, давайте пока оставим флаг -i и немного упростим команду:

sed "/'foo']/s/$/ "bar"/"

В вашем выражении есть как одинарные, так и двойные кавычки, а sed не понимает, где начинается и заканчивается команда. Как написано, похоже, что это:

sed "/'foo']/s/$/ "

(с некоторой тарабарщиной), которая явно имеет неопределенную команду s. Мы могли бы использовать одинарные кавычки вместо двойных кавычек для разметки команды, но тогда у нас возникла бы та же проблема с одинарными кавычками около foof. Поэтому мы избегаем этих внутренних двойных кавычек с обратной косой чертой:

sed "/'foo']/s/$/ \"bar\"/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...