И если они ** либо ссылку на этот вопрос своему брату (не вне сферы возможности), то он может поцеловать на прощание к большинству виз займет слишком много времени. Также помните, что устройств может быть доказательство воды, но не кабелей - они не должны быть. Никто не ждет от вас оплаты в дождь :) Что делает много смысла, и у меня есть виртуальная машина с Ubuntu! Спасибо большое, это ответ, который я ищу! Я сделал это на всех других сайтах ГП. Извините, если это не разрешено здесь. например, вместо строки сделал это, спасибо. Я например, вместо строки у всех ВГС и один выскочил на другие разделы. У меня в /dev записи/маппер для них сейчас. Спасибо.

Если StringB и строках не могут появляться на одной и той же входной линии, тогда вы можете сказать, sed, чтобы выполнить замену в одну сторону, и только попробуй иначе, если не было вхождения в первой строке поиска.

<file.txt СЭД -е 'з/строках/StringB/г-е т-е с/StringB/строках/г'

В общем случае, я не думаю, что есть простой способ в СЭД. Кстати, обратите внимание, что спецификация является неоднозначным, если строках и StringB могут перекрываться. Вот решение на Perl, который заменяет левую возникновения либо строку, и повторяет.

<file.txt Перл -ЧП 'начало {%Р = ("строках" => "StringB", "StringB" => "строках")}
с/(строках|StringB)/$Р{$1}/Гэ'

Если вы хотите придерживаться средства POSIX, awk-это путь. Awk не примитивным для общей замены параметризованы, так что вы должны свернуть свой собственный.

<file.txt на awk '{
 время (матч($0, /строках|StringB/)) {
 с printf "%с", функцию substr($0, 1, RSTART-1);
 $0 = функцию substr($0, RSTART);
 функции printf "%с", /^строках/ ? "StringB" : "Строках";
 $0 = функцию substr($0, 1+RLENGTH)
}
печать
}'