我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
当前回答
您需要一个简单的for循环:
total_count=0
for file in $(find . -name *.php -print)
do
count=$(wc -l $file)
let total_count+=count
done
echo "$total_count"
其他回答
对于Windows,一个简单快捷的工具是LocMetrics。
我想检查多个文件类型,并懒得手动计算总数。所以我现在用这个来一次性得到总数。
find . -name '*.js' -or -name '*.php' | xargs wc -l | grep 'total' | awk '{ SUM += $1; print $1} END { print "Total text lines in PHP and JS",SUM }'
7935115318PHP和JS中的文本行总数94669
这允许您链接多个想要过滤的扩展类型。只需将它们添加到-name“*.js”-或-name“*.php”部分,并可能根据您的喜好修改otuput消息。
cat \`find . -name "*.php"\` | wc -l
另一个获取所有文件总和的命令(当然是Linux)
find ./ -type f -exec wc -l {} \; | cut -d' ' -f1 | paste -sd+ | bc
与其他答案的主要区别:
使用find-exec,使用膏(带切口),使用bc
不同之处:
wc -l `tree -if --noreport | grep -e'\.php$'`
这很好,但您需要在当前文件夹或其子文件夹中至少有一个*.php文件,否则wc会停止。