是否有机会如何打印 - 比如说:
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”。谢谢你的帮助。
答案 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