pv: -s: 정수 인수가 필요합니다.

pv: -s: 정수 인수가 필요합니다.

다음 명령을 실행하는 스크립트가 있습니다.

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)'

관련 정보