首页 > 解决方案 > sed:删除匹配行和之后的所有内容

问题描述

我正在尝试使用 sed 使用 git 过滤器删除文件中第一个空行之后的所有行。

这似乎删除了空行之后的所有内容

sed -i '/^$/q' test.rpt

我如何还包括要删除的空白行本身?

标签: sed

解决方案


如果这是 GNU sed,只需使用Q而不是q.

sed -i '/^$/Q' test.rpt

对于 BSD sed,使用-nswitch 来抑制自动打印,并手动打印行。例如:

sed -n -i '/^$/q;p' test.rpt

PS:您可能希望将正则表达式更改为^[[:blank:]]*$将所有空白字符的行也视为空白行。


推荐阅读