Используйте sed для замены строки, которая содержит символы со значениями экстренного сообщения к sed

Я хочу искать строку

1 /value Error Code:12345/I

И замените его

1 /deleted by user/i

Как я могу сделать это с sed?

0
задан 23 August 2017 в 08:34

1 ответ

sed может использовать переменные разделители:

$ echo "1 /value Error Code:12345/I " | sed 's;/value.*/I;/deleted by user/i;'
1 /deleted by user/i

Но если необходимо использовать / по любой причине можно всегда предварительно ожидать \ им, когда они являются литеральными:

$ echo "1 /value Error Code:12345/I " | sed 's/\/value.*\/I/\/deleted by user\/i/;'
1 /deleted by user/i

Или Вы могли отказаться sed в целом и использование awk, с / как разделитель для обоих полей ввода и выходных полей:

$ echo "1 /value Error Code:12345/I " | awk -F'/' 'BEGIN{OFS=FS}{$2="deleted by user";$3="i";print}'
1 /deleted by user/i
1
ответ дан 2 November 2019 в 21:43

Другие вопросы по тегам:

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