gpt4 book ai didi

Perl 一行打印除最后一行以外的所有内容

转载 作者:行者123 更新时间:2023-12-01 15:39:39 25 4
gpt4 key购买 nike

我有一个文件。我想打印除最后一行以外的所有行。我们如何使用 Perl 代码来做到这一点?

这是行不通的:

cat file|perl -lane 'print if not eof()'

不好意思,这是行得通的。我没有仔细查看我的输出。

seq 1 6 | perl -lane 'print if not eof()'
1
2
3
4
5

最佳答案

如果需要在命令行上执行此操作,可以使用 shell 命令 head。负数行将显示除最后 N 行以外的所有行。

head --lines=-1 filename

这是一个 GNU 扩展,不适用于 BSD head,例如 OS X 附带的 stock head。

对于Perl,您的代码基本正确,但没有必要涉及cat。否则,您将读取该文件两次。您可以直接传递文件名。此外 -l 实际上什么也不做,从输入中剥离换行符并将其放回输出中。最后,不需要 -a,因为这会浪费地将每一行拆分为未使用的 @F

perl -ne 'print if not eof' filename

关于Perl 一行打印除最后一行以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296898/

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