【问题标题】:-exec wc -l {} \; prints count and path, I just need count-exec wc -l {} \;打印计数和路径,我只需要计数
【发布时间】:2020-11-14 06:34:20
【问题描述】:
Lines=(find $FILEDIRECTORY -iname "*$FILEENDING" -exec wc -l {} \;)

用户可以输入他的路径和文件结尾,它应该计算每个程序有多少行......如果用户只是wc -l,它会打印出我有多少 man 文件,该文件结尾我想要的是:

100
78
45

所以从每个文件的行

【问题讨论】:

  • 我很喜欢使用这个数组和另一个数组来计算具有单行 cmets 的行...但是 Look 不起作用:#counts cmetslines 的百分比为 (( i=0 ; i

标签: bash exec wc


【解决方案1】:

你可以这样使用它:

find $FILEDIRECTORY -iname "*$FILEENDING" -exec \
sh -c 'for f; do wc -l < "$f"; done' _ {} +

请理解:

  • wc -l &lt; file 只打印不带文件名的行数
  • exec 之后的+\; 更有效,因为find 尝试在参数中传递多个文件。
  • for ffor f in "$@" 的简写

替代方案:

find $FILEDIRECTORY -iname "*$FILEENDING" -exec grep -hc '^' {} +

如果+ 在您的find 中不起作用,请使用:

find $FILEDIRECTORY -iname "*$FILEENDING" -exec grep -hc '^' {} \;

【讨论】:

    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2019-10-03
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多