как добавить одну строку с тегом xml в один файл с помощью команды sed - PullRequest
1 голос
/ 04 июня 2019

У меня есть одна строка XML-строки для добавления в один файл перед строкой 2.

<script><![CDATA[context.ExtendParams.setParam('Enable500', 1);]]></script>

Я пробую команду

 sed "2 <script><![CDATA[context.ExtendParams.setParam(\'Enable500\', 1);]]></script>" -i mytest.log

получить ошибку:

-bash: ![CDATA[context.ExtendParams.setParam: event not found

Я знаю, что должен экранировать специальные символы, но я не знаю, как экранировать эти специальные символы в команде Sed.

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

! в строке в двойных кавычках - это специальный символ, который используется для расширения истории .

Вместо этого используйте строку в одинарных кавычках:

sed -i '2i<script><![CDATA[context.ExtendParams.setParam('"'"'Enable500'"'"', 1);]]></script>' file

Примечание: 2i означает, что нам нужно вставить строку №2.

0 голосов
/ 04 июня 2019

! тоже нужно экранировать. В области действия sed, ! отменяет ограничения и обычно сочетается с p или d. Итак, следующая команда должна добавить строку

<script><![CDATA[context.ExtendParams.setParam('Enable500', 1);]]></script>

перед второй строкой в ​​вашем файле:

sed -e "2i<script><\![CDATA[context.ExtendParams.setParam(\'Enable500\', 1);]]></script>" -i mytest.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...