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

标签 linux shell sed

我对 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

关于linux - 如何在模式匹配时使用sed删除多行并在第一个空行停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31091332/

相关文章:

linux - 如何让linux文件系统断电安全?

linux - 为什么 CentOS x86_64 存储库中有很多 i686 RPM?

php - Shell 脚本 "read"函数 - 不是有效的标识符

c - 如何在没有 ./a.out 命令的情况下执行我的程序?

linux - 获取 "-("和 ")-"之间的字符串,linux 目录

linux - Freeradius-代理不会转发到另一个家庭服务器

java - 当我从 native Java 方法抛出 C++ 异常时会发生什么?

bash - 在 bash 脚本中使用 ffmpeg 缩放图像

linux - 在终端中查看命令行表达式的实时结果?

linux - 如何在 shell 脚本中使用冒号从 mysql 中分离检索到的数据?