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

相关内容