awk는 디렉토리에서 특정 파일을 찾습니다

awk는 디렉토리에서 특정 파일을 찾습니다

변수 "files"에 전달된 file1, file2, file3 파일을 포함하는 "directory1"이라는 디렉터리가 있습니다. echo $files의 출력은 다음과 같습니다: file1 file2 file3. 크기의 합을 원하지만 아래 코드는 하나의 파일에만 작동합니다. 모든 파일에서 작동하게 하려면 어떻게 해야 합니까?

ls -l ./$dir/$files | awk '{t+=$5}END{print t}'

답변1

루프를 사용하여 파일 크기를 바이트 단위로 인쇄하고 stat출력을 합산할 수 있습니다 awk.

for i in $files; do
  stat -c '%s' "$dir/$i"
done | awk '{t+=$1}END{print t}'

답변2

다음과 같은 다양한 방법으로 이 작업을 수행할 수 있습니다.

먼저 해당 디렉토리로 변경하고 거기에서 명령을 실행하고 $file이 이미 발견되었으므로 전역 확장을 끄십시오.

cd "$dir" ;set -f

stat -c '%s' $files | paste -sd+ | bc -l

du  --apparent-size -abc $files | tail -n 1

perl -E '$s += -s for @ARGV;say $s' $files

관련 정보