首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动计数每个命令打印的行数?

如何自动计数每个命令打印的行数?
EN

Unix & Linux用户
提问于 2022-02-15 18:07:16
回答 1查看 77关注 0票数 -1

如何自动计数每个命令打印的行数?

示例:

代码语言:javascript
复制
$ echo xxx
xxx
1

$ ls -1
xxx
yyy
zzz
3

$ > t0.txt
0

etc.

即如何正确地将| wc -l添加到.bashrc中?

EN

回答 1

Unix & Linux用户

发布于 2022-02-16 03:19:25

使用Bash组合多个命令:

代码语言:javascript
复制
ls -1 \
    | cat <(echo) - \
    | cat -n \
    | tac \
    | cat -n \
    | while read i n line; do
        if [[ $i == 1 ]]; then
            echo $((n - 1))
        fi
        echo $line
    done \
    | tac \
    | tail -n +2

输出:

代码语言:javascript
复制
xxx
yyy
zzz
3
  • cat <(echo) -在头部添加了空行,因为如果stdin为零行,上面的代码块将不能正常工作。
  • 带有cat选项的n命令将行号添加到头部
  • tac命令反转stdin
  • while循环中,打印反向第一行号和stdin
  • 最后,再次使用tactail -n +2打印预期的输出
  • 它也能用echo xxx> t0.txt等代替D22
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/690804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档