awk - 打印最后一个字段$ NF的数组

时间:2016-03-11 15:23:46

标签: arrays bash awk

是否有机会如何打印 - 比如说:

A / b / c / d / e / f A B C D E F G | H | I | J |

我想将字段拆分为数组并打印:

awk -v OFS="\t" '{split($1,a,"/"); split($3,b,"|"); print a[LAST_FIELD??],$1,$2,$3,b[1],b[2]}' input

结果应该是:

f A B C g H I 

我不确定如何在我的数组中定义“LAST_FIELD”。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

split返回元素数量,因此您可以使用:

n = split($1,a,"/")

然后:

print a[n]

答案 1 :(得分:1)

您可以使用此awk

awk -v OFS="\t" '{lena=split($1,a,"/"); split($NF,b,"|");
      print a[lena],$2,$3,$4,b[1],b[2],b[3]}' file

f   A   B   C   G   H   I