如何使用sed在匹配模式时删除多行,并停止到第一个空白行?

Kin*_*arō 3 linux shell sed

我是shell脚本的新手.

如何匹配模式时如何删除多行并停止删除直到第一个空行匹配?

Rak*_*ish 8

你可以这样做:

sed '/STARTING_PATTERN/,/^$/d' filename
Run Code Online (Sandbox Code Playgroud)

这将选择从STARTING_PATTERN空白行开始的所有行^$,然后删除这些行.

要编辑文件,请使用-i选项.

sed -i '/STARTING_PATTER/,/^$/d' filename
Run Code Online (Sandbox Code Playgroud)

或使用awk:

awk 'BEGIN{f=1} /STARTING_PATTERN/{f=0} f{print} !$0{f=1}' filename
Run Code Online (Sandbox Code Playgroud)