Значение замены в одинарных кавычках в строке, которая содержит определенное слово с помощью sed команду

Это возможно, но это - безопасность через мрак. Это ничего не защищает. Это похоже на помещение чего-то в поле, но не запирании его.

2
05.08.2014, 02:28
2 ответа

Проблема в том, что bash обрабатывает вашу командную строку до того, как sed получит ее. В этом случае решение заключается в изменении внешних кавычек на двойные:

sed -i "/remoteUrl/c\shahar.push(['remoteUrl','staging.zazzercode.com']);" predict.html

Проблема в том, что bash выполняет удаление кавычек перед передачей команды на sed. По мнению Бэша, ваша первоначальная команда представляла собой серию строк в одинарных кавычках и bash удалил все кавычки. В приведенной выше версии bash видит единственную строку в двойных кавычках. В то время как bash удаляет эти двойные кавычки перед передачей строки в sed, она оставляет внутренние одиночные кавычки.

2
27.01.2020, 22:06

Итак, на всякий случай , я хочу изменить команду sed только для изменения значения между двумя одинарными кавычками после запятой (, ) в строке с 'remoteUrl' .

sed "s/\('remoteUrl',.*'\).*\('\)/\1staging.zazzercode.com\2/"

s - поиск, замена и замена. \ ( и \) в «старой» строке (указанной первой) идентифицируют подстроки. \ 1 и \ 2 \ n , до \ 9 ) копируют эти подстроки в заменяющую строку.

1
27.01.2020, 22:06

Теги

Похожие вопросы