【问题标题】:Combine number of lines of more files with filename [closed]将更多文件的行数与文件名结合起来[关闭]
【发布时间】:2020-03-06 00:31:23
【问题描述】:

指定显示当前目录下.c和.h文件中代码行数的命令/命令集,按字母顺序显示每个文件后跟“:”以及文件中的行数,最后是代码总行数。
可能会显示的示例是:

test.c: 202
example.c: 124
example.h: 43
Total: 369

我想以尽可能最短的形式找到解决方案。我已经尝试了许多命令,例如:

  1. find . -name '*.c' -o -name '*.h' | xargs wc -l
    == 它显示0 ./path/test.c 和总数,但不够接近
  2. stat -c "%n:%s" *
    == 它显示test.c:0,但它显示所有文件类型并且不显示行数或总数
  3. wc -l *.c *.h | tr ' ' '\:
    == 它显示0:test.c 和总数,但不在子目录中搜索,并且与问题(filename: number_of_lines)相比,顺序相反。

这个更接近答案,但在搜索了我在类似问题中看到的大多数命令后,我没有想法。

【问题讨论】:

    标签: linux shell ubuntu terminal


    【解决方案1】:

    应该这样做:

    wc -l *.c *.h | awk '{print $2 ": " $1}'
    

    【讨论】:

      【解决方案2】:

      xargs 中运行一个子shell

      xargs -n1 sh -c 'printf "%s: %s\n" "$1" "$(wc -l <"$1")"' --
      xargs -n1 sh -c 'echo "$1 $(wc -l <"$1")"' --
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-08
        • 1970-01-01
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多