Когда строка замены содержит символы новой строки и пробелы, вы можете использовать что-то еще. Мы попытаемся вставить вывод ls -l
в середине некоторого файла шаблона.
awk 'NR==FNR {a[NR]=$0;next}
/Insert index here/ {for (i=1; i <= length(a); i++) { print a[i] }}
{print}'
<(ls -l) text.txt
Когда вы хотите вставить что-то после строки, вы можете переместить команду {print}
или переключиться на:
sed '/Insert command output after this line/r'<(ls -l) text.txt
Вы также можете использовать sed для вставки перед строкой
sed 's/Insert command output after this line/ls -l; echo "&"/e' text.txt