Как выйти из специальных символов и вставить строку после строки преобразования в той же строке, используя sed - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу отредактировать файл на месте из командной строки.
У меня есть содержимое файла, как показано ниже, и я хочу добавить новую строку sendonly(); после localhost(abc);.

localhost(abc); dest(def); 

После модификации над строкой это должно выглядеть следующим образом.

localhost(abc); sendonly(); dest(def); 

Я выполняю команду:

sed -e 's/\blocalhost(abc);\b/& sendonly();/' f4.txt 

Но не получаю требуемый вывод. Если я пытаюсь экранировать специальные символы, получаю ошибку как непревзойденную.

1 Ответ

0 голосов
/ 07 апреля 2020

\b соответствует, если символ перед ним является символом слова, а символ после него - нет, или наоборот. Символ «слово» - это любая буква или ди git или символ подчеркивания. Второй \b находится между ; и , оба не являются словесными символами, поэтому он не совпадает.

Это должен быть ваш sed:

sed 's/\blocalhost(abc);/& sendonly();/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...