【发布时间】:2019-07-25 18:13:07
【问题描述】:
我正在编辑的脚本从近 100 个文件中获取数据并将其汇集到一个文件中。我现在正在尝试处理这些数据。我可以毫无问题地提取和汇集数据,我的问题是在处理它的时候出现的。
我正在尝试做两件事。我想在第 3 列中找到负数的最小值,然后从第 3 列中的每个值中减去该最小值,然后在标题为“rel”的新列中打印结果。目前,我已成功找到最小值,但无法进行减法运算。
我的输入文件(名为 allRE3)如下所示:
file Gibbs kcal
RR0.out -1752.142111 -1099486.696073
RR1.out -1752.141887 -1099486.555511
RR4.out -1752.140564 -1099485.725315
RR3.out -1752.140319 -1099485.571575
RR5.out -1752.138532 -1099484.450215
RR6.out -1752.138493 -1099484.425742
目前,我使用的代码如下所示:
min=`awk 'BEGIN{a=0}{if ($3<0+a) a=$3} END{print a}' allRE3`
awk 'NR == 1 { $5 = "rel" } NR >= 3 { $5 = $3 - $min } 1' < allRE3 >finalE
使用该代码,我将 finalE 作为一个新文件(这是所需的),它具有以下内容:
file Gibbs kcal rel
RR0.out -1752.142111 -1099486.696073
RR1.out -1752.141887 -1099486.555511 -1.09949e+06
RR4.out -1752.140564 -1099485.725315 -1.09949e+06
RR3.out -1752.140319 -1099485.571575 -1.09949e+06
我想要得到的是下面的内容,我希望它位于一个名为“finalE”的新文件中。
file Gibbs kcal rel
RR0.out -1752.142111 -1099486.696073 0.00000
RR1.out -1752.141887 -1099486.555511 0.140562
RR4.out -1752.140564 -1099485.725315 0.970758
RR3.out -1752.140319 -1099485.571575 1.124498
【问题讨论】:
标签: bash awk multiple-columns subtraction negative-number