我有下面的示例中的字符串,但也可能是任何東西,所以不要拘泥於名稱。如何採取串出一組在AWK
apple = green
pie = brown
我想單獨獲得「蘋果」和陣列中的「綠色」等,責令。
array [0,0] = apple
array [0,1] = green
array [1,0] = pie
array [1,1] = brown
如何在'='符號之前和之後將awk中的字符串分成兩部分?
我必須使用子或拆分的功能呢?
我有下面的示例中的字符串,但也可能是任何東西,所以不要拘泥於名稱。如何採取串出一組在AWK
apple = green
pie = brown
我想單獨獲得「蘋果」和陣列中的「綠色」等,責令。
array [0,0] = apple
array [0,1] = green
array [1,0] = pie
array [1,1] = brown
如何在'='符號之前和之後將awk中的字符串分成兩部分?
我必須使用子或拆分的功能呢?
按照慣例,並通過AWK內置函數來實現,awk數組爲1,而不是0開始,所以你的陣列應該array[1,1] = apple
開始。另外,如果你有GNU awk的,你可以使用真正的多維數組:
$ awk -F' = ' '
{ array[NR][1]; split($0,array[NR]) }
END {for (i=1;i<=NR;i++) for (j=1;j<=NF;j++) printf "array[%d][%d] = %s\n",i,j,array[i][j]}
' file
array[1][1] = apple
array[1][2] = green
array[2][1] = pie
array[2][2] = brown
這將讓你你想要的數組:
awk -F' = ' '{ array[NR-1,0] = $1; array[NR-1,1] = $2 }' file
設置字段分隔符=
使用-F
開關和分配領域中,使用記錄編號NR
(減去1,因爲它從1開始,不是0)。
您好,感謝!什麼是-F意味着什麼? – 6axter82
'-F'就是用來設置字段分隔符。 –
這個問題'-F意味着什麼?'意味着你需要獲得Arnold Robbins編寫的第4版Effective Awk Programming一書! –
的awk -F '=' '{打印$ 1}' 會做 –