주어진 파일 확장자로 파일 크기를 반복적으로 합산하는 방법은 무엇입니까?

주어진 파일 확장자로 파일 크기를 반복적으로 합산하는 방법은 무엇입니까?

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

관련 정보