-1
我有一個輸入文件。 我需要掃描第3列中的第1列和第2列的值/數字,並且如果匹配,則使用相應的$ 4打印$ 1和$ 2,如下面的輸出。 任何幫助表示讚賞。AWK在同一個文件中的列之間查找(類似於vlookup)
要匹配$ 3的第一列,試過這段代碼,但它沒有奏效。 的邏輯是將$ 3放入一個數組中並掃描$ 1。
awk -F ',' '{a[$3] } { if ($1 in a) {print $1":" $4 } else {print $1, "NA"} }' 1.csv
輸入
345,1314,567,index-1
344,1315,566,index-2
343,1316,565,index-3
342,1317,1316,index-4
241,1318,563,index-5
340,1319,562,index-6
439,1320,561,index-7
318,1333,337,index-8
337,1335,559,index-9
236,1336,558,index-10
,,311,index-11
,,1314,index-12
,,1333,index-13
,,3444,index-14
,,344,index-15
,,2008,index-16
,,342,index-17
,,1320,index-18
,,543,index-19
,,340,index-20
,,12233,index-21
輸出
345:#N/A
344:index-15
343:#N/A
342:index-17
241:#N/A
340:index-20
439:#N/A
318:#N/A
337:index-8
236:#N/A
1314:index-12
1315:#N/A
1316:index-4
1317:#N/A
1318:#N/A
1319:#N/A
1320:index-18
1333:index-13
1335:#N/A
1336:#N/A
您的文字和您的示例不同意。請澄清你想要什麼,並顯示你迄今爲止嘗試過的。 – John1024 2015-02-07 20:51:22
對於令人困惑的解釋感到抱歉,示例輸入和輸出是有效的。我試圖匹配開始時的第一列,但仍然需要一個大help.awk -F',''{a [$ 3]} {if($ 1 in a ){print $ 1 $ 4「:」} else {print $ 1,「NA」}}'1.csv – 2015-02-07 21:00:48
你試過了什麼?當您不包含代碼時,很難幫助您處理代碼。 [把它放在你的問題](http://stackoverflow.com/posts/28387099/edit),不只是一個評論。 – ghoti 2015-02-07 21:03:31