[英]How to use sed to delete multiple lines when the pattern is matched and stop until the first blank line?
I am very new to shell script. 我是shell脚本的新手。
How can I delete multiple lines when the pattern is matched and stop deleting until the first blank line is matched? 如何匹配模式时如何删除多行并停止删除直到第一个空行匹配?
You can do this: 你可以这样做:
sed '/STARTING_PATTERN/,/^$/d' filename
This will select all the lines starting from STARTING_PATTERN
upto a blank line ^$
and then delete those lines. 这将选择从STARTING_PATTERN
到空白行^$
所有行,然后删除这些行。
To edit files in place, use -i
option. 要编辑文件,请使用-i
选项。
sed -i '/STARTING_PATTER/,/^$/d' filename
Or using awk
: 或者使用awk
:
awk 'BEGIN{f=1} /STARTING_PATTERN/{f=0} f{print} !$0{f=1}' filename
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.