【问题标题】:Divide the first entry and last entry of each row in a file using awk使用awk划分文件中每一行的第一个条目和最后一个条目
【发布时间】:2013-04-23 15:54:19
【问题描述】:

我有一个行长不同的文件:

120 2 3 4 5 9  0.003 
220 2 3 4 0.004
320 2 3 5 6 7 8 8 0.009

我希望输出由单列组成,其中包含以下条目:

120/0.003
220/0.004
320/0.009

也就是我想把每一行的第一列和最后一列分开。

如何使用 awk 实现这一点?

【问题讨论】:

    标签: bash awk grep


    【解决方案1】:

    显示除法运算的输出:

    $ awk '{ printf $1 "/" $NF "=" ; print ($1/$NF)}' infile
    120/0.003=40000
    220/0.004=55000
    320/0.009=35555.6
    

    【讨论】:

    • 不需要二次打印,可以说:'{ printf "%s = %.2f\n", $1"/"$NF, $1/$NF }'
    【解决方案2】:

    awk 将根据FS 的值拆分其输入,默认情况下是任何空白序列。这意味着您可以通过参考$1$NF 获得第一列和最后一列。 NF 是当前行或记录中的字段数。

    所以要告诉 awk 打印第一列和最后一列,请执行以下操作:

    awk '{ print $1 "/" $NF }' infile
    

    输出:

    120/0.003
    220/0.004
    320/0.009
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 2022-12-18
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多