pv: -s: argumento inteiro esperado

1

Eu tenho um script no qual estou executando este comando:

pv -s 'du -sb file1.data | awk '{s += $1} END {print s}''

E dá um erro abaixo:

pv: -s: integer argument expected

Então, quando eu executei este comando du -sb file1.data | awk '{s += $1} END {print s}' , parece que a saída vem como:

1.03131e+10

Então, como posso resolver esse problema?

    
por user1950349 28.02.2018 / 08:12

1 resposta

2

Basta formatá-lo usando printf:

du -sb file1.data | awk '{s += $1} END {printf "%d\n", s}'

Ou talvez você precise de %ld para números realmente grandes:

du -sb file1.data | awk '{s += $1} END {printf "%ld\n", s}'

E se isso falhar (como testei no FreeBSD com números como 1e32), tente isto:

du -sb file1.data | python -c $'import sys\nt=0\nfor line in sys.stdin:\n    t += int(line.split()[0])\nprint(t)'
    
por 28.02.2018 / 14:39

Tags