![주어진 파일 확장자에 대한 파일 크기의 합을 반복적으로 찾는 방법은 무엇입니까?](https://linux55.com/image/170793/%EC%A3%BC%EC%96%B4%EC%A7%84%20%ED%8C%8C%EC%9D%BC%20%ED%99%95%EC%9E%A5%EC%9E%90%EC%97%90%20%EB%8C%80%ED%95%9C%20%ED%8C%8C%EC%9D%BC%20%ED%81%AC%EA%B8%B0%EC%9D%98%20%ED%95%A9%EC%9D%84%20%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%B0%BE%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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