주어진 파일 확장자에 대한 파일 크기의 합을 반복적으로 찾는 방법은 무엇입니까?

주어진 파일 확장자에 대한 파일 크기의 합을 반복적으로 찾는 방법은 무엇입니까?

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

배쉬에서:

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

이것을 메인 루프에 통합하여 예제의 항목을 .jpg스크립트의 적절한 변수로 변경하세요.$i

관련 정보