[英]AWK: Assign a variable to each field
I need to assign a variable to each field, to later generate HTML. 我需要为每个字段分配一个变量,以便以后生成HTML。 My data file looks like this:
我的数据文件如下所示:
field1;field2;field3 # << RECORD 1
this;is;second;record # << RECORD 2
Is there a way to generate an array for each record, based on the record number? 有没有一种方法可以根据记录号为每个记录生成一个数组? Like arrayNR, so:
就像arrayNR,所以:
array1[0] = "field1"; array1[1] = "field2";
^ record number
array2[0] = "this"; array2[1] = "is"; array2[2] = "second"; array2[3] = "record"
^ record number
Using Gnu awk multidimensional arrays and split
, for example: 使用Gnu awk多维数组和
split
,例如:
$ awk '{array[NR][1]; split($0,array[NR],";"); for(i in array[NR]) print array[NR][i]}' file
{
array[NR][1] # initiate array
split($0,array[NR],";") # split to array
for(i in array[NR]) # iterate thru all array elements
print array[NR][i] # output array value
}
With GNU awk you can have multidimensional arrays: 使用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
With other awks you can use: 对于其他awk,您可以使用:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.