Допустим, я хочу изменить все слова, оканчивающиеся на -et, чтобы они вместо оканчивались на -ert
. Простое выполнение sed 's/et /ert /g'
сработало бы для всех слов, за которыми следует другое слово. Но только если за ним следует пробел. За ним также могут следовать «.», «,», «:» Или другие символы. Запуск sed
для каждого отдельного случая не кажется правильным.
Я ищу что-то вроде "для каждого совпадения AB, замените A на C, но не коснуться B ".
Уточнение по комментариям:
Не ограничивается окончанием слов. Я хотел бы сделать это и в словах. Например:
$ echo "aaetxaa" | sed '?'
aaertxaa
$ echo "aaetyaa" | sed '?'
aaetyaa
Таким образом, замена произошла только тогда, когда сопоставление закончилось знаком x, а не y.