다음 명령을 실행하는 스크립트가 있습니다.
pv -s `du -sb file1.data | awk '{s += $1} END {print s}'`
다음과 같은 오류가 발생합니다.
pv: -s: integer argument expected
따라서 이 명령을 실행하면 du -sb file1.data | awk '{s += $1} END {print s}'
출력은 다음과 같습니다.
1.03131e+10
그렇다면 이 문제를 어떻게 해결해야 할까요?
답변1
printf를 사용하여 형식을 지정하세요.
du -sb file1.data | awk '{s += $1} END {printf "%d\n", s}'
%ld
아니면 매우 큰 숫자가 필요할 수도 있습니다 .
du -sb file1.data | awk '{s += $1} END {printf "%ld\n", s}'
이것이 실패하면(FreeBSD에서 1e32와 같은 숫자로 테스트한 것처럼) 다음을 시도해 보십시오:
du -sb file1.data | python -c $'import sys\nt=0\nfor line in sys.stdin:\n t += int(line.split()[0])\nprint(t)'