环境:Solaris 9
我有一个命令可以为我提供文件总数。但我需要一个命令,它将分别计算少于1M行的文件和超过1M行的文件。我怎么能这样做?
find . -type f -exec wc -l {} \; | awk '{print $1}' | paste -sd+ | bc
答案 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"