ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [20231103]输出倒数第2行.txt

[20231103]输出倒数第2行.txt

原创 Linux操作系统 作者:lfree 时间:2023-11-05 19:26:39 0 删除 编辑

[20231103]输出倒数第2行.txt

--//别人要实现的需求,输出倒数第2行
--//输出最后一行很容易。
D:\>seq 10| sed -n "$ p"
10

--//linux下sed 可没有 $-1 这样的写法:

D:\>seq 10| sed -n "\$-1 p"
sed: -e expression #1, char 6: Unterminated address regex

D:\>seq 10 | sed  -n "$!p" | sed -n "$p"
9
--//说明:先最后1行不输出(!的作用),然后通过过滤取最后1行。如果输出倒数第3行这样写不行。

--//既然明确了输出倒数第2行.可以tac反向输出后,再输出正向的第2行。

D:\>seq 10| tac | sed -n "2p"
9

--//还可以利用tail 命令取最后2行,输出第1行就ok了。

D:\>seq 10| tail -2 | sed -n  "1p"
9

--//顺便说一下我在windows下遇到的问题,如果我在其他盘符下使用tac命令会遇到问题:
E:\>seq 10 | tac
tac: /tmp/taca01292: No such file or directory

--//它需要当前盘符下存在一个/tmp目录。
--//从执行效率看使用tail也许更好一些。我个人写bash shell往往是随性而写,很少考虑优化健壮性之类的事情。
--//不知道还有什么更好的方法。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2992946/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970381