在 bash 中划分浮点数据
Dividing float point data in bash
我有一个数据文件 (input.dat) 分为两列,类似这样
5.12 .5
4.1 93.8
.9 11.2
.58 5.3
并且我想向第二列值添加一个常量(例如 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
但是当我说 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?
中的列上
做
awk -v a=5 '{print ,+a}' input.dat
我有一个数据文件 (input.dat) 分为两列,类似这样
5.12 .5
4.1 93.8
.9 11.2
.58 5.3
并且我想向第二列值添加一个常量(例如 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
但是当我说 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?
中的列上做
awk -v a=5 '{print ,+a}' input.dat