sed:删除匹配行和之后的所有内容

标签 sed

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

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

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

我如何也包含要删除的空行本身?

最佳答案

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

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

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

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

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

关于sed:删除匹配行和之后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58929733/

相关文章:

linux - 在 bash 中,在 sed 和 cat 之后得到了不需要的换行符>>

linux - 如何使用 SED 删除不是 [ACGTN] 的字符

linux - sed 仅在第一场比赛中插入

mysql - 删除 csv 文件中最多第 N 个模式匹配实例的文本

ruby - 使用 rbenv 安装最新稳定版本的 Ruby

linux - 将文本转换为 CSV 时如何从文件中删除双引号?

awk - 从另一个文件的 column2 中提取所有负数

linux - 命令行 : search and replace in all filenames matched by grep

linux - 将单个 csv 文件的前两列合并到另一列中

linux - 显示命令输出 Linux 脚本 shell 中的特定行