文本文件中列的算术运算

文本文件中列的算术运算

我有一个由两列组成的数据文件。我需要对这些列执行算术运算,如下所示;

column_1=a(i)
column_2=b(i)

其中 i 是行号

result_1=a(1)*100/b(1)
result_2=a(2)*100/b(2) ....

然后我需要将所有结果写入另一个由列组成的文本文件中。我尝试了下面的代码,但所有值看起来都 Inf。

nawk -F, '{print $1*100/$2}' data > results

答案1

你是说-F,但是(根据你的评论)你的数据是用空格分隔的,而不是逗号。所以这就是所[n]awk看到的

Line 1:   $1="100 150"   $2=""
Line 2:   $1="200 250"   $2=""

一旦您在算术表达式中使用它们,awk请将它们转换为

Line 1:   $1=100        $2=0
Line 2:   $1=200        $2=0

所以你会得到除以 0 的结果。只需省略-F, (或将数据更改为逗号分隔),你应该会得到你想要的输出。嗯,差不多了;在我的系统上,我得到66.666780。您只需将结果四舍五入到最接近的整数(如果这实际上是您想要的)。

相关内容