时间:2021-02-07 14:49:59 | 栏目:Shell | 点击:次
分享一个统计代码行的shell命令:
find . “(” -name “.java” -or -name “.html” -or -name “.js” -or -name “.css” “)” -print | xargs wc -l
根据不同的项目类型,不同的目录,自行修改。
如果内容多,可以:
find . “(” -name “.java” -or -name “.html” -or -name “.js” -or -name “.css” “)” -print | xargs wc -l > statistics.txt
补充:下面看下统计行数、字符数、字节数的shell脚本
在linux中,有一个常用的命令wc,可用来统计文件的行数、单词数、字符数以及字节数。
运行wc命令时,必须明确指定命令中的子文件夹的层级。
通常情况下,用于统计的文件夹,会有很多的层级,会使统计变得复杂。
本文提供的这个脚本,可以帮助我们搜索各级子文件夹,并给出每个文件夹级别的计数,并将结果存储在一个单独的文件,以供将来使用。
代码:
代码示例:
#!/bin/bash #filename: count_lines.sh len=$(echo $1 |awk '{print length($0)}') len2=$(echo $2 |awk '{print length($0)}') if [ $len -ne "0" ] then x="$1" i="1" cc=0 while [ $i -le "$len" ] do echo `expr substr $1 $i 1 ` if [ `expr substr $1 $i 1 ` = "l" ] || [ `expr substr $1 $i 1 ` = "w" ] || [ `expr substr $1 $i 1 ` = "c" ] || [ `expr substr $1 $i 1 ` = "k" ] then lengh = "length=$(echo "$1" |awk '{print length($0)}')" else cc=`expr $cc + 1` fi i=`expr $i + 1` done if [ $cc -eq "0" ] then rm ~/count_output echo "=======================current Directory==========================" >> count_output pwd >> count_output if [ $len2 -eq "0" ] then ls -l * | wc -$1 *.* | tail -k >> ~/count_output else ls -l * | wc -$1 *.$2 | tail -k >> ~/count_output fi ls -R | grep './' > list sed "s/:/ /" list >> list1 cat list1 | while read current_dir do echo "=======================$current_dir ==========================" >> ~/count_output cd $current_dir if [ $len2 -eq "0" ] then ls -l * | wc -$1 *.* | tail -k >> ~/count_output else ls -l * | wc -$1 *.$2 | tail -k >> ~/count_output fi cd - done clear rm list rm list1 else print "invalid entry" fi else print "input options l w c k needs to be entered" fi
总结