AWK:为每个字段分配一个变量

时间:2016-10-01 07:19:38

标签: arrays variables unix awk

我需要为每个字段分配一个变量,以便稍后生成HTML。 我的数据文件如下所示:

field1;field2;field3                # << RECORD 1
this;is;second;record               # << RECORD 2

有没有办法根据记录号为每条记录生成一个数组?像arrayNR一样,所以:

array1[0] = "field1"; array1[1] = "field2"; 
     ^ record number
array2[0] = "this"; array2[1] = "is"; array2[2] = "second"; array2[3] = "record"
     ^ record number

2 个答案:

答案 0 :(得分:2)

使用Gnu awk多维数组和SelectMethod,例如:

split

答案 1 :(得分:0)

使用GNU awk,您可以拥有多维数组:

gawk -F\; '{for(i=1;i<=NF;i++)a[NR][i]=$i}END {for(i in a) for (j in a[i]) print a[i][j]}' file

使用其他awks:

awk -F\; '{for(i=1;i<=NF;i++)a[NR,i]=$i}END {for(i in a) {split(i,b,SUBSEP); print a[b[1],b[2]]}}' file