Имеются следующие файлы:
input_file :
if_line1
if_line2
template_file_1 :
temp_file_line1
temp_file_line2
##regex_match## <= must be replaced by input_file
temp_file_line3
template_file_2 :
temp_file_line1
temp_file_line2
{my_file.global} <= must be replaced by input_file
temp_file_line3
output_file :
temp_file_line1
temp_file_line2
if_line1
if_line2
temp_file_line3
Для template_file_1 работает следующая команда sed:
sed -n -e '/##regex_match##/{r input_file' -e 'b' -e '}; p' template_file_1 > output_file
Однако для template_file_2 аналоговая команда sed завершается неудачно:
sed -r -n -e '/(?<={).+\.global(?=})/{r input_file' -e 'b' -e '}; p' template_file_2 > output_file
sed жалуется, что регулярное выражение было недопустимым
Заданное регулярное выражение по крайней мере PCREдействителен, например grep -oP '(?<={).+\.global(?=})' template_file_2
работает.Есть идеи, как с этим бороться?