我想在特定模式匹配时插入文件内容.以下是一个示例:在和之间添加file2.txt
内容.file1.txt
<tag>
</tag>
file1.txt
<html>
<body>
<tag>
</tag>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
file2.txt
Hello world!!
Run Code Online (Sandbox Code Playgroud)
我试过跟随它并没有用.
# sed "/\<tag\>/ {
h
r file2.txt
g
N
}" file1.txt
<html>
<body>
Hello World!!
<tag>
</tag>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Bir*_*rei 48
尝试以下命令:
sed '/<tag>/ r file2.txt' file1.txt
Run Code Online (Sandbox Code Playgroud)
它产生:
<html>
<body>
<tag>
Hello world
</tag>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
编辑以解释为什么命令无法正常工作:该r filename
命令在当前周期结束时或读取下一个输入行时添加其内容.并且您正在使用N
不打印任何内容但只读取下一行的命令,因此在此时Hello world
打印,然后是正常的行流.
在我的情况下,它读取行<tag>
,然后结束循环,所以打印行,然后打印文件的内容并继续读取直到结束.