原始文件
.
.
.
startpattern
text to copy 1
test to copy 2
endpattern
.
.
.
thirdpattern
结果文件
.
.
.
startpattern
text to copy 1
test to copy 2
endpattern
.
.
.
thirdpattern
text to copy 1
test to copy 2
.
.
.
答案1
对于可编写脚本的编辑器来说,这似乎非常简单ed
。核心命令是:
/startpattern/+1, /endpattern/-1 t /thirdpattern/
您可以使用命令行更改文件:
printf '%s\n' '/startpattern/+1, /endpattern/-1 t /thirdpattern/' w q | ed -s filename
...它将三个命令通过管道传输ed
到 的输入缓冲区中:main 命令、w
rite 命令和q
uit 命令。
您将/应该收紧每个模式上的正则表达式,以确保您捕获正确的行。前两个模式上的 +1 和 -1 向前和向后调整匹配以排除具有这两个模式的行。