gpt4 book ai didi

regex - SED命令删除空行直到第一次出现句子

转载 作者:行者123 更新时间:2023-11-29 09:03:42 25 4
gpt4 key购买 nike

我的输入文件将是

[emptyline]
[emptyline]
aaa
bbb
[emptyline]
cc
dd

这里[emptyline]表示空行。

我需要一个 SED 命令来将其更改为

aaa
bbb
[emptyline]
cc
dd

也就是说,我需要单独删除顶部的所有空行。

我只需要 SED 命令,因为我需要在 bash 脚本中使用它。

MAC OSx 的附加信息

最佳答案

你可以在 sed 中使用分支:

sed '/^ *$/d; :a; n; ba' file

更有效的解决方案是使用范围表达式,请参阅 user2719058's answer了解如何做到这一点。

如果可以减少对 sed 的需求,效率会更高,请参阅 gniourf_gniourf's answer寻找替代品。

这可以用 awk 优雅地表达如下:

awk 'NF {f=1} f' file

两种情况下的输出:

aaa
bbb

cc
dd

说明

这两种选择都通过寻找第一个非空行来工作。

使用 sed 模式 /^ *$/d 将删除文件开头的所有空行。接下来是打印文件其余部分的循环。

awk 将为每一行更新 NF,当该行为空时 NF 为零。这被用于设置打印标志(f)。

关于regex - SED命令删除空行直到第一次出现句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com