-exec wc -l {} \;打印计数和路径,我只需要计数

-exec wc -l {} \; prints count and path, I just need count

Lines=(find $FILEDIRECTORY -iname "*$FILEENDING" -exec wc -l {} \;)

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

100
78
45

所以每个文件中的行

你可以这样使用它:

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

请理解:

  • wc -l < file 只打印没有文件名的行数
  • +exec 之后比 \; 更有效,因为 find 试图在参数中传递多个文件。
  • for f 是 shorthand 对于 for f in "$@"

备选方案:

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

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

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