需要一个命令,将计数记帐与< 1M线和> 1M行

时间:2015-07-30 14:03:07

标签: bash shell awk solaris

环境:Solaris 9

我有一个命令可以为我提供文件总数。但我需要一个命令,它将分别计算少于1M行的文件和超过1M行的文件。我怎么能这样做?

find . -type f -exec wc -l {} \; | awk '{print $1}' | paste -sd+ | bc

2 个答案:

答案 0 :(得分:0)

使用-size选项:

echo "Smaller: $(find . -type f -size -1M | wc -l)"
echo "Larger: $(find . -type f -size +1M | wc -l)"

如果您的查找不支持1M,请填写完整的数字。

答案 1 :(得分:0)

编辑:@ rojomoke的评论,我这里有一个版本,用wc实用程序计算文件中的LINES,因为这是你在原帖中使用的

代码:

# here I am already in the directory with the files so I just use * 
# to refer to all files
# the wc -l will return a single column of counts so I use $1 to 
# refer to field 1
wc -l * | awk '$1>1e6{bigger++}$1<1e6{smaller++}END{print "Files > 1M lines = ", bigger, "\nFiles < 1M lines = ", smaller}'

输出:

"Files > 1M lines =  454" 
"Files < 1M lines =  528"