假设我想要计算项目中的代码行数。如果所有文件都在同一个目录下,我可以执行:
cat * | wc -l
我怀疑这可能是xargs的工作,但我想知道是否有更好的解决方案呢?
发布于 2018-03-06 12:26:10
首先你不需要cat
用来计算线。要计算当前目录中文件的行数,请使用wc
:
wc -l *
然后该find
命令递归子目录:
find . -name "*.c" -exec wc -l {} \;
.
是开始搜索的顶级目录的名称-name "*.c"
是您感兴趣的文件的模式 -exec
给出要执行的命令{}
是find命令传递给命令的结果(这里wc-l
)\;
表示命令结束
发布于 2018-03-06 13:38:59
如果你想要一个合理的答案的话:
grep '' -R . | wc -l
单独使用wc -l的问题是它不能很好地下降,并且使用的是oneliners :
find . -exec wc -l {} \;
不会给你一个总计数,因为它为每个文件(loL!)运行wc一次 :
find . -exec wc -l {} +
https://stackoverflow.com/questions/-100003581
复制相似问题