awk的二維陣列

2022-07-12 08:30:12 字數 1154 閱讀 2516

awk二維陣列練習

$cat f2

5 6 7 8 9 10

a 0.7 0.8 0.9 1 1.1 1.2

c 0.22 0.34 0.46 0.58 0.7 0.82

d -0.26 -0.12 0.02 0.16 0.3 0.44

e -0.74 -0.58 -0.42 -0.26 -0.1 0.06

f -1.22 -1.04 -0.86 -0.68 -0.5 -0.32

g -1.7 -1.5 -1.3 -1.1 -0.9 -0.7

h -2.18 -1.96 -1.74 -1.52 -1.3 -1.08

i -2.66 -2.42 -2.18 -1.94 -1.7 -1.46

k -3.14 -2.88 -2.62 -2.36 -2.1 -1.84

l -3.62 -3.34 -3.06 -2.78 -2.5 -2.22

m -4.1 -3.8 -3.5 -3.2 -2.9 -2.6

$cat f1

5 a8 c

10 g

11 d

12 f

13 h

需求:

根據f2檔案的第一行第一列為序號,求出f1中各對應的結果,列印在第三列

[root@web awk]# awk 'fnr==nr;next}'  f2  f1

5 a 0.7

8 c 0.58

10 g -0.7

11 d

12 f

13 h

思路
awk 'fnr==nr;next}'  f2  f1
對每一行進行迴圈,對第一行進行對應陣列處理

a[1]=$0,a[2]=5,a[3]=6,a[4]=7,a[5]=8,a[6]=9,a[7]=10

然後下次迴圈跳過第一列

b[a[1],$1]=$1,b[a[2],$1]=$2,b[a[3],$1]=$3,b[a[4],$1]=$4,b[a[5],$1]=$5,b[a[6],$1]=$6,b[a[7],$1]=$7

這樣就形成了我們需要的二維陣列

然後迴圈整個f2檔案

最後對f1檔案獲取,將結果列印在f1檔案的第三列

AWK二維陣列的用法總結

摘自 awk的多維陣列在本質上是一維陣列,更確切一點,awk在儲存上並不支援多維陣列。awk提供了邏輯上模擬二維陣列的訪問方式。例如,array 2,4 1這樣的訪問是允許的。awk使用乙個特殊的字串subsep 034 作為分割字段,在上面的例子中,關聯陣列array儲存的鍵值實際上是2 03 4...

二維陣列及二維陣列的遍歷

一 如果陣列的元素是一維陣列 則該陣列是二維陣列 如果陣列的元素是二維陣列 則該陣列是三維陣列 注意 二維陣列的長度 是陣列內一維陣列的個數 獲取二維陣列內的元素 第一步獲取該元素在哪乙個一維陣列內 第二步獲取該元素在一維陣列的那個位置 false var arr 1,2,3 var arr1 你好...

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...