![文本文件中列的算术运算](https://linux22.com/image/79799/%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%97%E7%9A%84%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97.png)
我有一个由两列组成的数据文件。我需要对这些列执行算术运算,如下所示;
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.6667
和80
。您只需将结果四舍五入到最接近的整数(如果这实际上是您想要的)。