1

我正在尝试编写一个单行 bash 命令,它将显示文件大小 1 除以文件大小 2。

到目前为止我所拥有的是

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

但它显示0

然而这些工作

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

有人可以帮我弄这个吗?

4

2 回答 2

3

expr(1)只做整数除法。从手册页

 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)"
于 2013-10-10T18:12:10.597 回答
0

expr $(du -b wednesday | cut -f1) / $(du -b tuesday | cut -f1)
出于某种原因,反引号不适用于此命令。
因为这行得通。一个文件是 7 字节,另一个是 1295 字节,输出是 185 字节

于 2013-10-12T04:25:10.937 回答