我必须通过扩展递归中递归中的目录中的大量文件,并获取每个扩展名的总尺寸。
我不想看到其旁边的类型和大小的单个文件。
例如,这将是一个潜在的输出:
JPEG - 123 Files - 321MB Total;
AVI - 321 Files - 123MB Total;
MP4 - 111 Files - 111MB Total;
我已经尝试使用ls -lshR
,然后将结果输送到grep
,但是由于我正在工作的环境的限制,我无法创建一个脚本文件来解析结果。并在单个命令中从ls -lshR | grep ".txt"
的结果中总计大小。
您可以进一步将评论的解决方案煮沸,
find /boo -ls
| awk '/.*.txt/{txtTot+=$6}; /.*.mp4/{mp4Tot+=$6} END {print "Txt Tot=" txtTot "nMP4 Tot=" mp4Tot}'
这将在/boo
,AWK /.*.txt/
等下获取所有文件,是REG表达式仅与.txt
匹配。.mp4
相同。继续添加尽可能多的。您不关心的任何人都会在处理中跳过。
(您的find
可能会将文件大小放在其他字段NUM中,只需查看输出并根据需要将引用更改为$ 6)。
然后,接下来的事情就是使用awk数组按类型动态总文件大小,但在担心之前,请阅读更多有关awk的信息。
(我现在没有办法对此进行测试,因此可能会剩下一些次要的语法内容。根据Awk的版本,您可能会收到一个有用的错误消息; -/)
ihth