当前位置: 技术问答>linux和unix
shell 编程求一个目录下的所有.C文件的总行数
来源: 互联网 发布时间:2016-07-20
本文导语: 要递归 我这程序怎么有问题呢? #!/bin/bash #统计一个目录下所有.c文件的总行数 #每个C文件的行数 COUNT=0 #C文件总行数 COUNT_T=0 #每个目录下的C文件个数 DIR_COUNT=0 for DC in `ls -R | grep ".c"`; do ISDIR=`echo "$DC" | cut ...
要递归
我这程序怎么有问题呢?
#!/bin/bash
#统计一个目录下所有.c文件的总行数
#每个C文件的行数
COUNT=0
#C文件总行数
COUNT_T=0
#每个目录下的C文件个数
DIR_COUNT=0
for DC in `ls -R | grep ".c"`; do
ISDIR=`echo "$DC" | cut -b 2`
# echo "$DC $ISDIR"
if [ "$ISDIR" = '/' ]; then
DC=${DC%%:}
echo "$DC"
cd "$DC"
echo "$PWD"
DIR_COUNT=`ls *.c| wc -l`
fi
COUNT=`cat "$DC" | wc -l`
COUNT_T=$(($COUNT_T+$COUNT))
done
echo $COUNT_T
我这程序怎么有问题呢?
#!/bin/bash
#统计一个目录下所有.c文件的总行数
#每个C文件的行数
COUNT=0
#C文件总行数
COUNT_T=0
#每个目录下的C文件个数
DIR_COUNT=0
for DC in `ls -R | grep ".c"`; do
ISDIR=`echo "$DC" | cut -b 2`
# echo "$DC $ISDIR"
if [ "$ISDIR" = '/' ]; then
DC=${DC%%:}
echo "$DC"
cd "$DC"
echo "$PWD"
DIR_COUNT=`ls *.c| wc -l`
fi
COUNT=`cat "$DC" | wc -l`
COUNT_T=$(($COUNT_T+$COUNT))
done
echo $COUNT_T
|
[root@localhost c3-1.1]# find . -name "*.[ch]" | xargs wc -l
或
[root@localhost c3-1.1]# cat *.[ch] | wc -l
或
[root@localhost c3-1.1]# cat *.[ch] | wc -l
|
find ./ -name '*.c' -exec wc -l {} ; | awk '{ SUM += $1} END { print SUM }'
|
#/bin/bash
COUNT=`find ./ -name "*.c"|xargs wc -l|tail -n 1|awk -F" " '{print $1}'`
echo $COUNT
COUNT=`find ./ -name "*.c"|xargs wc -l|tail -n 1|awk -F" " '{print $1}'`
echo $COUNT
|
不用find就行
#/bin/bash
COUNT=`wc -l *.c|tail -1|awk -F" " '{print $1}'`
echo $COUNT
#/bin/bash
COUNT=`wc -l *.c|tail -1|awk -F" " '{print $1}'`
echo $COUNT
|
用find命令加上wc就可以了,具体怎么用查查find的帮助手册。