我試圖用awk
添加$4
,$5
,$6
領域和頭部的tab-delimeted
file2
於在file2
$2
存在匹配的$3
值線在file1
。我爲每一行添加了評論,並對我的理解發生了什麼。謝謝 :)。awk來添加特定領域的基於文件的比賽現場
file1的tab-delimeted
ID Name Number
0-0 A,A 123456
2-2 B,B 789123
4-4 C,C 456789
file2的tab-delimeted
ID Number Name Info1 Info2 Info3 Info4
0-0 123456 A,A aaaaa bbbbb ccccc eeeee
1-1 111111 Z,Z aaa bbb ccc eee
2-2 789123 B,B aaaaa bb,bbb ccccc eeeee
3-3 222222 Y,Y aaa bb,bb cc e
4-4 456789 C,C aaa bb ccc eeee
期望的輸出tab-delimeted
ID Name Number Info1 Info2 Info3
0-0 A,A 123456 aaaaa bbbbb ccccc
2-2 B,B 789123 aaaaa bb,bbb ccccc
4-4 C,C 456789 aaa bb ccc
AWK
awk -F"\t" '$3 in a{ # read $3 value of file1 into array a
a[$3]=a[$2]; # match $3 array a from file1 with $2 value in file2
next # process next line
} # close block
{ print $1,$2,a[$2],$4,$5,$6 # print desired output
} # close block
END { # start block
for (i in a) { # create for loop i to print
print a[i] # print for each matching line in i
} # close block
}' file1 file2
獲取Arnold Robbins編寫的Effective Awk Programming第4版。你有很多類似的問題在這裏回答(而且檔案中還有數百個),所以你不應該問這個問題,除非你錯過了那本書的基本內容。 –
我正在閱讀那本書以及其他一些書,並且正在學習,但這有點超出了我的專業領域。我會繼續閱讀和嘗試。感謝大家的幫助,解釋和耐心:)...它是一個陡峭的學習曲線,但是它非常有價值,是科學需要的。謝謝 :)。 – Chris