file.txt
:
start some text works "HELLO" foo test
sum
other
end
start som "other" line with text 'also'
thing
foo
end
我想删除位于"HELLO"
的行,然后删除所有后续行,直到一行end
上只写了内容而没有其他内容!
我知道这是一个相当奇怪的想法,但我希望一些基本的 bash 命令可以做到这一点,或者我传递第一个字符串和第二个字符串的函数,它会删除它们以及中间的所有内容!
文件最后看起来应该是这样的:
start som "other" line with text 'also'
thing
foo
end
谢谢你!
答案1
不是 bash,而是 sed:
$ sed '/"HELLO"/,/^end$/d' file.txt
start som "other" line with text 'also'
thing
foo
end
或 awk:
$ awk '/"HELLO"/,/^end$/{next} 1' file.txt
start som "other" line with text 'also'
thing
foo
end