小编Ale*_*mić的帖子

在bash中划分浮点数据

我在两列中有一个数据文件(input.dat),就像这样

 5.12  .5
 4.1   93.8 
.9     11.2
.58    5.3
Run Code Online (Sandbox Code Playgroud)

我想向第二列值添加一个常量(例如 5.3)。

我做了 awk '{print $1, $2 + 5.3 }' < input.dat > output.dat

它工作得很好,output.dat 看起来像

 5.12  5.8
 4.1   99.1 
 .9    16.5
 .58   10.6
Run Code Online (Sandbox Code Playgroud)

但是当我说 a=5.3 并做了:

awk '{print $1, $2 + $a }' < input.dat > output.dat

output.dat 发生了一些完全疯狂的事情:

5.12  5.62
4.1   97.9 
.9     12.1
.58    5.88
Run Code Online (Sandbox Code Playgroud)

有人能告诉我发生了什么吗,我认为问题出在打印只需要 1 美元、2 美元、3 美元等。我认为如果我在 input.dat 文件的第三列中写入变量 a,那么我的问题的解决方案是可能的do awk '{ print $1, $2+$3 },但是在 bash 中对列进行浮点算术运算的正确方法是什么?

bash awk grep cut sed

1
推荐指数
1
解决办法
89
查看次数

标签 统计

awk ×1

bash ×1

cut ×1

grep ×1

sed ×1