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

Bash 使用sed获取不在两行之间的文件内容,bash,shell,sed,scripting,Bash,Shell,Sed,Scripting,我有这样一个文件: 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 na

我有这样一个文件:

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

以下是一些
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