Припустимо, у мене є рядок 'abbc' і я хочу замінити:
- ab -> до н.е.
- bc -> ab
Якщо я спробую дві заміни, результат є не тим, що я хочу:
echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g'
abab
Отже, яку команду sed я можу використовувати для заміни, як нижче?
echo abbc | sed SED_COMMAND
bcab
EDIT : Насправді текст може мати більше двох шаблонів, і я не знаю, скільки замінників мені знадобиться. Оскільки у відповіді сказано, що sed
це редактор потоків, і його заміни жадібно, я думаю, що для цього мені потрібно буде використовувати мову скриптів.
ab
або bc
в оригінальному введенні.
g
прапор з обох цихs///
команд, і це спрацює.