我有兩個文件如下:使用bash陣列中AWK
file1
:
3 1
2 4
2 1
file2
:
23
9
7
45
的file1
第二字段用於指定的file2
線包含要檢索和打印的號碼。在所需的輸出中,打印第一個字段file1
,然後打印檢索的字段。
所需的輸出文件:
3 23
2 45
2 23
這是我試圖解決這個問題:
IFS=$'\r\n' baf2=($(cat file2));echo;awk -v av="${baf2[*]}" 'BEGIN {split(av, aaf2,//)}{print $1, aaf2[$2]}' file1;echo;echo ${baf2[*]}
然而,這個腳本不能使用猛砸陣列baf2
。
該解決方案必須高效,因爲file1
擁有數十億行,file2
擁有數百萬行的實際情況。
這可能指向您在正確的方向:http://stackoverflow.com/questions/6022384/bash-tool-to-get-nth-line-from-a-file –