与えられたファイル拡張子のファイルサイズの合計を繰り返し見つける方法は?

与えられたファイル拡張子のファイルサイズの合計を繰り返し見つける方法は?

ls5番目の列の結果を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

バッシュから:

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

これをメインループに組み込んで、サンプルのエントリを.jpgスクリプトの適切な変数に変更します。$i

関連情報