使用sed获取不在两行之间的文件的内容



我有一个文件,例如:

name 1
name 2
name 3
#START#
no name 1
no name 2
#END#
name 4

,我正在寻找与sed -n '/#START#/,/#END#/p'相反的结果:

name 1
name 2
name 3
name 4

什么是秘密?

sed '/#START#/,/#END#/d'

删除指定范围内的线路。

这是一些awk解决方案:

awk '/#START#/ {f=1} !f; /#END/ {f=0}' file
name 1
name 2
name 3
name 4

您也可以使用范围(例如sed),但是如果您有更多的测试内容,则范围不太灵活:

awk '/#START#/,/#END/ {next} 1' file
name 1
name 2
name 3
name 4

相关内容

  • 没有找到相关文章

最新更新