我有一个正在运行以下命令的脚本:
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)'