【发布时间】:2015-06-27 17:10:24
【问题描述】:
我对 shell 脚本很陌生。
如何在模式匹配时删除多行并在匹配第一个空行之前停止删除?
【问题讨论】:
我对 shell 脚本很陌生。
如何在模式匹配时删除多行并在匹配第一个空行之前停止删除?
【问题讨论】:
你可以这样做:
sed '/STARTING_PATTERN/,/^$/d' filename
这将选择从STARTING_PATTERN 到空白行^$ 的所有行,然后删除这些行。
要就地编辑文件,请使用-i 选项。
sed -i '/STARTING_PATTER/,/^$/d' filename
或者使用awk:
awk 'BEGIN{f=1} /STARTING_PATTERN/{f=0} f{print} !$0{f=1}' filename
【讨论】: