-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 '^' {} \;
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 '^' {} \;