自动打印命令行输出的行数

自动打印命令行输出的行数

在我的鱼壳, 我在用鱼命令定时器自动显示每个命令执行后的持续时间。这是一个很棒的功能,我推荐它。

现在我想要除此之外类似的东西:行数,即在执行每个命令行后,打印到 stdout 和/或 stderr 的行数也应该打印到 stdout

例子:

代替

> cat /etc/mpd.conf
pid_file "/run/mpd/mpd.pid"
db_file "/var/lib/mpd/mpd.db"
state_file "/var/lib/mpd/mpdstate"
playlist_directory "/var/lib/mpd/playlists"

我想看看

> cat /etc/mpd.conf
pid_file "/run/mpd/mpd.pid"
db_file "/var/lib/mpd/mpd.db"
state_file "/var/lib/mpd/mpdstate"
playlist_directory "/var/lib/mpd/playlists"

[ 4 lines ]

一些笔记:

  • 有一些手动解决方案来打印命令的输出行数这里,但我希望这是在我的鱼配置中实现的永久功能。
  • 我不想执行该命令两次(出于明显的原因,例如缺乏幂等性等)
  • bash(而不是fish)的解决方案可能指向正确的方向。

命令计时器与执行命令行后触发的 postexec 事件一起使用,但这并不能完全解决我的问题,所以我需要一种方法。

答案1

尝试替换cat /etc/mpd.confcat /etc/mpd.conf | tee /proc/self/fd/2 | echo -e "\n[ $(wc -l) lines ]"

如果您无法使用 /proc/self/fd/ ,请尝试将其分成 2 个命令或使用 && 运算符进行类似操作cat /etc/mpd.conf && echo "Number of lines: $(cat /etc/mpd.conf | wc -l)"

厕所手册页:

-l, --lines 打印换行数

相关内容