Предположим, у меня есть файл, который содержит несколько вхождений как StringA, так и StringB. Я хочу заменить все вхождения StringA на StringB и (одновременно) все вхождения StringB на StringA.
Прямо сейчас я делаю что-то вроде
cat file.txt | sed 's/StringB/StringC/g' | sed 's/StringA/StringB/g' | sed 's/StringC/StringA/g'
Проблема этого подхода в том, что он предполагает, что StringC не встречается в файле. Хотя это не является проблемой на практике, это решение все еще кажется грязным, то есть похоже на возможность изучить больше магии Unix. :)
sed: can't read s/StringB/StringA/g: No such file or directory. Кажется,-e t PATTERNэто не совсем понятно.