sed -n -e '/##regex_match##/{r input_file' -e 'b' -e '}; p' template_file
Если регулярное выражение сопоставлено, прочитайте и выведите входной файл и ответвление (завершите обработку строки и не печатайте ее).В противном случае выведите строку.
Использование -e
разделяет части команд sed
, так что команда r
, которая читает входной файл, знает, где заканчивается имя файла.В противном случае он жадно потребляет следующие sed
команды, как если бы они были частью имени файла.
Фигурные скобки ограничивают блок в программе, который похож на оператор if
.
Я проверял это на MacOS, но оно должно быть очень похоже на GNU.MacOS sed
очень требователен к -e
(среди прочих различий, которые здесь не вступают в силу).