gpt4 book ai didi

perl - sed 脚本删除文件的前两行,如果它们是空的

转载 作者:行者123 更新时间:2023-12-04 22:07:07 30 4
gpt4 key购买 nike

我正在尝试编写一个相当简洁的 sed 脚本来删除文件 的前两行,仅当 为空时,因此以下文件:

> cat myfile.in


Line 3

Line 5

将导致一个三行输出文件:
> cat myfile.out
Line 3

Line 5

这涉及组合行范围和模式匹配,我似乎找不到任何例子。如果有人可以建议并同样(或更多)考虑 Perl 替代方案,我也会很感兴趣。非常感谢。

脚注

我应该补充一点,我尝试了 1,2{/^$/d},它在 Linux 上运行得非常好,但在 AIX 下我得到了:
sed: 0602-404 Function 1,2{/^$/d} cannot be parsed.

在 Solaris 上我得到了:
sed: command garbled: 1,2{/^$/d}

这是一个打击,因为此代码必须在 AIX 和 Solaris 上运行,但不能在 Linux 上运行!耻辱!

最佳答案

我认为这应该与 sed 一起使用(如果你想删除两行都是空的):

sed '1,1{N;/^\n$/d}'

即: 1,1 = 转到第一行, N = 将下一行附加到模式空间, ^\n$/d = 如果这两行为空,则删除它们。

如果你想删除前两行,如果它们是空的(独立于另一行),你可以这样做:
sed '1,2/^$/d'

关于perl - sed 脚本删除文件的前两行,如果它们是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497036/

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