我一直在思考如何将ls
第五列结果与求和awk
。如果我添加的$bytesum+=...
话,程序显然会崩溃。有任何想法吗?
bytesum=0
for i in `cat fileextensions.txt | sort | uniq`
do
ls -Rl "$folder" | grep $i | awk '{bytesum+=$5}; {print $9 " " $5}'
done
echo $bytesum
答案1
使用 GNU 发现您所需要的只是:
find . -type f -printf '%s\n' | awk '{s+=$0} END{print s+0}'
任何发现:
find . -type f -exec stat -c '%s\n' {} \; | awk '{s+=$0} END{print s+0}'
要在特定目录(“文件夹”是一个 Windows 术语,在 UNIX 术语中它是一个目录)中查找并统计具有特定扩展名的文件,您可能会尝试执行以下操作:
dir='whatever'
ext='pdf'
find "$dir" -type f -name "*.${ext}" -printf '%s\n'
答案2
在bash中:
for size in `du *.jpg | cut -f1`; do sum=$((sum+size)); done; echo $sum
将其集成到您的主循环中,将我的示例中的 更改为脚本中的.jpg
适当变量。$i