Чтобы получить «BBB» из «AAA», используя команду GNU sed «s» с флагом «e», можно сделать следующее:
echo AAA | sed -re 's/A/echo -n B;/ge'
'AAA' заменяется на 'echo -n B;echo -n B; echo -n B;', что при конечном выполнении приводит к трем последовательно выполняемым командам echo, по одной для каждого глобального совпадения. ' -n' пропускает символы перевода строки из вывода echo, в результате чего 'B заканчиваются на одной строке (, но sed добавляет один перевод строки сам по себе при окончательной печати пространства шаблона ).
В дополнение к ответу @HaukeLaging вы правы в том, что >&2
является синтаксическим сахаром для 1>&2
. &
следует читать как указатель или косвенную ссылку. В основном 1>&2
в команде означает «для этой команды (или группы команд, если используется {}
или ()
), укажите файловый дескриптор 1 туда, куда указывал файловый дескриптор 2 до обработки этого слова». Но это синтаксис оболочки и не является аргументом команды.