迫切需要你的帮助 - 我有一个文件夹,其中包含许多不同日期创建的文件,并且具有不同的数量和不同的大小。 对于文件大小度量,我使用:
find . -name "*20160725*" -print -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'
表示文件数量
ls -l | grep -c "Jul 25"
我的问题是如何将它们相加以制作一些将在这种视图中导出文件的脚本:
DATE QUANTITY SIZE
05-jul 416 26,84
06-jul 1170 28,6
07-jul 490 27,53
08-jul 794 16,19
09-jul 112 13,47
10-jul 122 18,53
11-jul 698 34,04
12-jul 456 19,4
感谢您的帮助
答案 0 :(得分:0)
试试这个:
find . -name '*' -printf '%Td-%Tb %s\n' | awk 'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}'
printf
命令的find
选项输出每个文件的日期和大小。
输出通过管道传输到awk
,它将每个日期的大小相加,并将字节大小转换为千字节,就像在示例输出中一样。
<强>更新强>
使用mm/dd/yyyy
格式按日期排序:
find . -maxdepth 1 -name '*' -printf '%TD %s\n' | awk 'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}' | sort -n -t"/" -k3 -k1 -k2