在命令行中进行文件大小计算

时间:2013-10-10 18:06:30

标签: bash expression

我正在尝试编写一行bash命令,它将显示filesize1除以filesize2。

到目前为止我所拥有的是

expr `du wednesday | cut -f1` / `du tuesday | cut -f1`

但它显示0

然而,这些工作

$ expr `du wednesday | cut -f1` / 1
13066388
$ expr `du wednesday | cut -f1` / 2
6533194

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:3)

expr(1)只进行整数除法。来自man page

 expr1 {*, /, %} expr2
         Return the results of multiplication, integer division, or
         remainder of integer-valued arguments.

您需要使用其他工具; bc(1)可以做到这一点,例如:

bc <<< "scale=2; $(du wednesday | cut -f1) / $(du tuesday | cut -f1)"

答案 1 :(得分:0)

expr $(du -b wednesday | cut -f1) / $(du -b tuesday | cut -f1)
由于某种原因,后退标记不适用于此命令 因为这有效。一个文件是7个字节,另一个是1295个字节,输出是185个字节