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 ...