Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Sed:包括regex指定的外部文件_Linux_Sed_Command Line - Fatal编程技术网

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