本文共 1135 字,大约阅读时间需要 3 分钟。
通常利用Linux的wc命令和其他命令结合来计算行和其他信息。
在Linux下用wc进行计数。返回文件的行数、字数、字节数等。看个例子:
wc wc1.txt 3 5 16 wc1.txt
输出信息依次是:行数 字数 字节数 文件名称。再具体点,单个统计。wc -m filename:显示一个文件的字符数 wc -l filename:显示一个文件的行数 wc -L filename:显示一个文件中的最长行的长度 wc -w filename:显示一个文件的字数
需要留意的:貌似wc统计的行算是用换行符来确定的。就是说最后一行要有换行符,最后wc的行数才是正确的,否则将会少一行。
为了说明这个问题,看一个perl的测试:
perl -e 'print "a"'|wc 0 1 1 perl -e 'print "a\n"'|wc 1 1 2
上面的例子中print命令将a打印出来,如果不带换行符\n,则认为这一行不存在。
有以下几点说明:
知道指定后缀名的文件总个数命令:
find . -name "*.cpp" | wc -l 知道一个目录下代码总行数以及单个文件行数: find . -name "*.h" | xargs wc -llinux统计文件夹中文件数目
第一种方法:
ls -l|grep “^-”|wc -lls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)。如果ls -lR|grep “^-”|wc-l则可以连子目录下的文件一起统计。
grep ^- 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
第二种方法:
find ./ -type f|wc -l由于默认find会去子目录查找,如果只想查找当前目录的文件用find ./ -maxdepth 1 -type f|wc -l即可。
需要说明的是第二种方法会比第一种方法快很多,尤其是也统计子目录时。
转载地址:http://ydbpf.baihongyu.com/