Предположим, у меня есть строка 'abbc', и я хочу заменить:
- ab -> bc
- bc -> ab
Если я попробую две замены, результат будет не тем, что я хочу:
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
Так какую команду sed я могу использовать для замены, как показано ниже?
echo abbc | sed SED_COMMAND
bcab
РЕДАКТИРОВАТЬ : На самом деле текст может иметь более 2 шаблонов, и я не знаю, сколько замен мне понадобится. Поскольку был ответ о том, что sed
это потоковый редактор и его замены жадно, я думаю, что для этого мне понадобится некоторый язык сценариев.
ab
или bc
в исходном вводе.
g
флаг из обеихs///
команд, и это сработает.