当列数变化时使用awk制作数组

时间:2012-12-08 23:16:55

标签: arrays awk

我以逗号分隔,数据如:

WP, 2012120100, 30, 989, 50, 1050, 50, 50, 1007
WP, 2012120106, 35, 987, 45, 1045, 50, 50, 1006
WP, 2012120112, 40, 985, 
WP, 2012120118, 50, 980, 55, 1065, 65, 60, 1008

我想将每列转换为数组,例如:

set -A col2 `awk -F, {print $2} myfile`

- >这很好,yeilding数组值

2012120100, 2012120106, 2012120112, 2012120118

但如果我这样做:

set -A col5 `awk -F, {print $5} myfile`

数组“col5”的值为50,45,55。我需要为任何缺少的列保留空值或空值,这样数组“col5”将为50,45,55,否则我的数组没有更长的阵容。

1 个答案:

答案 0 :(得分:2)

你用什么语言打电话给awk?这是UNIX中的bash:

$ col5="$(awk -F, '{print $5}' myfile)"
$ echo "${col5[@]}"
 50
 45

 55