【发布时间】: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 实现这一点?
【问题讨论】:
我有一个行长不同的文件:
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 实现这一点?
【问题讨论】:
显示除法运算的输出:
$ 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 }'
awk 将根据FS 的值拆分其输入,默认情况下是任何空白序列。这意味着您可以通过参考$1 和$NF 获得第一列和最后一列。 NF 是当前行或记录中的字段数。
所以要告诉 awk 打印第一列和最后一列,请执行以下操作:
awk '{ print $1 "/" $NF }' infile
输出:
120/0.003
220/0.004
320/0.009
【讨论】: