如何迭代地求出給定檔案副檔名的檔案大小總和?

如何迭代地求出給定檔案副檔名的檔案大小總和?

我一直在思考如何將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

相關內容