Awk

如何迭代地總結具有給定文件副檔名的文件大小?

  • April 10, 2020

我一直在弄清楚如何將ls第 5 列結果與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

使用 GNU find 你需要的是:

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'

在 bash 中:

for size in `du *.jpg | cut -f1`; do sum=$((sum+size)); done; echo $sum

將此集成到您的主循環中,將.jpg我的範例中的 更改為腳本中的適當變數$i

引用自:https://unix.stackexchange.com/questions/579161