Intereting Posts
Запретить установку пакета? модуль ядра vboxdrv Как исправить вход в графический режим на Fedora 25 Скрипт для чтения строки за строкой из файла, который передается другой команде и выводится в другой файл Что означает это утверждение IF Являются ли зомби-процессы чем-то, о чем я должен беспокоиться? Файл образа Automount с наложением UnionFS Количество обратных косых черт, необходимых для экранирования обратного слэжа регулярного выражения в командной строке «Не удается открыть файл общих объектов» Ошибка, даже если ldconfig отображается в записи Можно ли вручную выполнить единый системный таймер-парный сервисный модуль для целей тестирования? Как убить командную строку хрома над ssh? Как изменить цвета всех запущенных экземпляров urxvt? Arch Linux думает, что у меня около 16 концертов, когда у меня всего 8 Параметр rsync-демона в качестве параметра команды rsync.conf Проблема при загрузке с DVD-диска ubuntustudio

Вставка файла в другой файл с помощью sed

Я хочу вставить содержимое файла1 в файл2 после соответствующего PATTERN. Я хочу сделать это только после первого появления PATTERN.

Я хотел бы знать, какую модификацию мне необходимо внести в следующую команду для моих нужд.

sed -i "/PATTERN/r file1" file2

 sed '/PATTERN/{r file1 :a;n;ba}' file2 

:a;n;ba – это всего лишь цикл, который распечатывает содержимое всего файла после PATTERN до конца. и обратите внимание, что эти две строки – это всего лишь одна команда, но новая строка необходима для разграничения следующей команды sed после r.

Дополнительная информация от info sed :

 `n' If auto-print is not disabled, print the pattern space, then, regardless, replace the pattern space with the next line of input. If there is no more input then `sed' exits without processing any more commands. `: LABEL' [No addresses allowed.] Specify the location of LABEL for branch commands. In all other respects, a no-op. `b LABEL' Unconditionally branch to LABEL. The LABEL may be omitted, in which case the next cycle is started.