Linux Sed:包括regex指定的外部文件
我想使用Linux Sed:包括regex指定的外部文件,linux,sed,command-line,Linux,Sed,Command Line,我想使用sed将一个文件插入另一个文件。这里有一个例子 我有一个文件input.txt,其中有一行: #包括要导入的文件名 目前,我正在使用sed处理此问题,以创建output.txt sed -r -e "/^#INCLUDE (\w+)/r ${HOME}/inc/<filename>.sh" input.txt sed-r-e/^#INCLUDE(\w+)/r${HOME}/inc/.sh”input.txt 如何反向引用正则表达式中捕获的组,以便导入指定的文件名以导入?我
sed
将一个文件插入另一个文件。这里有一个例子
我有一个文件input.txt
,其中有一行:
#包括要导入的文件名
目前,我正在使用sed
处理此问题,以创建output.txt
sed -r -e "/^#INCLUDE (\w+)/r ${HOME}/inc/<filename>.sh" input.txt
sed-r-e/^#INCLUDE(\w+)/r${HOME}/inc/.sh”input.txt
如何反向引用正则表达式中捕获的组,以便导入指定的文件名以导入
?我尝试过使用\1
,但没有成功,我相信是因为它超出了正则表达式的范围<代码>1美元也不起作用
使用
sed
是否可以做到这一点?如前所述,我认为使用sed
无法做到这一点。这里是一个awk
一行程序:
awk '$1 == "#INCLUDE" { while(getline line <$2){print line} }' input.txt
awk'$1==“#INCLUDE”{while(getline-line这可能适合您(GNU-sed):
使用replacement命令捕获一个back引用,并在它的右侧,使用e
标志对shell命令求值。相当确定这在sed
中是不可能的,awk
就是一种方法。我一直在使用e
标志时遇到问题,这是一个很好的用法示例。
sed -E '/^~INCLUDE (\w+)/{p;s##cat /inc/\1.sh#e}' file