gpt4 book ai didi

regex - 如何使用 sed 打印最后一个非空行?

转载 作者:行者123 更新时间:2023-12-02 07:48:54 25 4
gpt4 key购买 nike

我想使用 sed 从文件中获取最后一个非空行。我能够使用两个流水线 sed 获得预期结果:

$ echo -e "\n\none\n\ntwo\n\n\nthree\n\n" | sed '/^$/d' | sed -n '$p'
three

但是,我想知道是否可以只使用一个 sed 命令来获得它。也许通过将每个非空行一个接一个地复制到缓冲区,覆盖以前的内容并在最后打印缓冲区?我不确定它是否可以在 sed 中完成,这只是我的猜测。

请不要建议我使用 awk、tail 等——我只对 sed 感兴趣。谢谢。

最佳答案

也许:

sed -e '/^$/d' -e '$ !d'

?

使用保持缓冲区的其他方式:

sed -e '/^$/ !h
$ {x;p;}'

关于regex - 如何使用 sed 打印最后一个非空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4849809/

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