Кроме того, sed
можно также сделать это с awk
:
awk '1; /line 2/ { while(getline < "file2.txt") print }' file1.txt
Это вставит содержание file2.txt
каждый раз line 2
встречен.
1
блок по умолчанию { print $0 }
.
Это отправляет его вывод в стандартный вывод, если Вы хотите перезаписать file1.txt
сохраните вывод во временный файл и перезапись:
awk '1; /line 2/ { while(getline < "file2.txt") print }' file1.txt > file1.txt.tmp
mv file1.txt.tmp file1.txt
Для фиксированного сопоставления строк ==
было бы более надежным, например, соответствовать упомянутой строке используют это условное выражение:
awk '1; $0 == "\"zend_extension=/usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so\"" { while(getline < "file2.txt") print }' file1.txt
Обратите внимание, что это должно соответствовать целой строке.