用bash划分浮点数据

时间:2016-04-14 16:39:24

标签: bash awk sed grep cut

我有两个列的数据文件(input.dat),类似这样

 5.12  .5
 4.1   93.8 
.9     11.2
.58    5.3

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

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

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

 5.12  5.8
 4.1   99.1 
 .9    16.5
 .58   10.6

但是当我说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

有人可以告诉我发生了什么,我认为问题出在印刷品上,只需要1美元,2美元,3美元等。 我认为如果我在input.dat文件的第三列中编写变量a然后执行awk' {print $ 1,$ 2 + $ 3},我的问题的解决方案是可能的,但是做浮点运算的正确方法是什么bash中列的操作?

1 个答案:

答案 0 :(得分:4)

待办事项

awk -v a=5 '{print $1,$2+a}' input.dat