Перенаправление в скрипте

Чтобы получить «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 добавляет один перевод строки сам по себе при окончательной печати пространства шаблона ).

0
07.08.2020, 02:01
1 ответ

В дополнение к ответу @HaukeLaging вы правы в том, что >&2является синтаксическим сахаром для 1>&2. &следует читать как указатель или косвенную ссылку. В основном 1>&2в команде означает «для этой команды (или группы команд, если используется {}или ()), укажите файловый дескриптор 1 туда, куда указывал файловый дескриптор 2 до обработки этого слова». Но это синтаксис оболочки и не является аргументом команды.

1
18.03.2021, 23:14

Теги

Похожие вопросы