【sed&awk】统计某目录上所有文件的数目

【sed&awk】统计某目录下所有文件的数目
  作者:zhanhailiang 日期:2012-12-13

第一种方式是查看ls -lR中第一个字段为“-”的行数,如下:

zhanhailiang@linux-06bq:~> ls -lR source/ |grep -E "^-"|wc -l
41

第二种方式是使用awk来统计,原理类似第一种:

zhanhailiang@linux-06bq:~> cat summary.awk 
#BEGIN {
##    print "BYTES" "\t" "FILE";
#};
 
# 匹配文件数
NF == 8 && /^-/ {
    sum += $5;
    ++filenum;
#    print $5, "\t", $8;
};
## 匹配目录数
#NF == 8 && /^d/ {
##    print "<dir>", "\t", $8;
#};
#$1 ~ /^\..*:$/ {
##    print "\t" $0;
#};
END {
    print "FileSum: " filenum ". Total: " sum " bytes.";
};
zhanhailiang@linux-06bq:~> ls -lR source/ |awk -f summary.awk 
FileSum: 41. Total: 94996 bytes.