簡體   English   中英

AWK:為每個字段分配一個變量

[英]AWK: Assign a variable to each field

我需要為每個字段分配一個變量,以便以后生成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

使用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
}

使用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

對於其他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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM