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