我一直在嘗試3天,試圖瞭解如何使用AWK爲我提供我期待的結果。讓我首先說我不是程序員,充其量只是新手。我看過大約30種不同的方式來做我想做的事情,但他們要麼不是完全匹配的,我必須改變事情,他們不工作,或者從一開始就不工作。使用AWK查找2個CSV文件中的數據
目標:比較2個CSV文件並將數據導出到另一個CVS文件。我需要查看文件1(標題爲sampleData)中第2列或第3列中的任何Mac地址是否顯示文件2中的第2列(標題爲sampleLeases),然後從文件2列出第1列,即匹配的mac地址,以及文件2中的第1列。
我的問題可能源於我對AWK中關聯數組的誤解,但我試圖在旅途中學習,並且需要幫助。
我已經嘗試過這其中許多other.Sorry爲長期發佈,我只是想盡可能徹底。以下是一組樣本數據。
sampleLeases.csv
10.1.2.3,00:11:22:33:44:55
10.1.2.4,00:11:22:33:44:56
10.1.2.5,00:11:22:33:44:57
10.1.2.6,00:11:22:33:44:58
10.1.2.7,00:11:22:33:44:59
10.1.2.8,00:11:22:33:44:60
10.1.2.9,00:11:22:33:44:61
10.1.2.10,00:11:22:33:44:62
10.1.2.11,00:11:22:33:44:63
10.1.2.12,00:11:22:33:44:64
10.1.2.13,00:11:22:33:44:65
10.1.2.14,00:11:22:33:44:66
10.1.2.15,00:11:22:33:44:67
10.1.2.16,00:11:22:33:44:68
10.1.2.17,00:11:22:33:44:69
10.1.2.18,00:11:22:33:44:70
10.1.2.19,00:11:22:33:44:71
10.1.2.20,00:11:22:33:44:72
10.1.2.21,00:11:22:33:44:73
sampleData.csv
comp. name,mac address,mac address 2,os version,S/N,dept.,building,asset number
bldg1-rm200-01,00:11:22:33:44:55,22:33:44:55:66:77,Osversion,98745562,cart,main,6587521336
bldg1-rm200-02,11:22:33:44:56:44,00:11:22:33:44:56,Osversion,98745562,cart,main,6587521336
bldg1-rm200-03,00:11:22:33:44:57,22:33:44:55:66:79,Osversion,98745562,cart,main,6587521336
bldg1-rm200-04,00:11:22:33:44:58,22:33:44:55:66:80,Osversion,98745562,cart,main,6587521336
bldg1-rm200-05,11:22:33:44:59:45,00:11:22:33:44:60,Osversion,98745562,cart,main,6587521336
bldg1-rm200-06,00:11:22:33:44:61,22:33:44:55:66:82,Osversion,98745562,cart,main,6587521336
bldg1-rm200-07,11:22:33:44:61:45,00:11:22:33:44:62,Osversion,98745562,cart,main,6587521336
bldg1-rm200-08,00:11:22:33:44:63,22:33:44:55:66:84,Osversion,98745562,cart,main,6587521336
bldg1-rm200-09,00:11:22:33:44:64,22:33:44:55:66:85,Osversion,98745562,cart,main,6587521336
bldg1-rm200-10,00:11:22:33:44:65,22:33:44:55:66:86,Osversion,98745562,lab,main,6587521336
bldg1-rm200-11,11:22:33:44:65:56,00:11:22:33:44:66,Osversion,98745562,lab,main,6587521336
bldg1-rm200-12,11:22:33:44:66:56,00:11:22:33:44:67,Osversion,98745562,lab,main,6587521336
bldg1-rm200-13,11:22:33:44:67:20,00:11:22:33:44:68,Osversion,98745562,lab,main,6587521336
bldg1-rm200-14,11:22:33:44:68:34,00:11:22:33:44:69,Osversion,98745562,lab,main,6587521336
bldg1-rm200-15,00:11:22:33:44:70,22:33:44:55:66:91,Osversion,98745562,lab,main,6587521336
bldg1-rm200-16,11:22:33:44:70:59,00:11:22:33:44:71,Osversion,98745562,lab,main,6587521336
所需的輸出格式
bldg1-rm200-01,00:11:22:33:44:55,10.1.2.3
比KS。
編輯:
我試着通過karkafa和Xorg建議的兩種方法,我沒有收到任何輸出。我附上了一張屏幕截圖,其中顯示了我的Awk版本(實際上是GNU Awk)和Linux內核版本,以防萬一它相關。我使用Linux Mint 17.2 Rafaela來測試我的AWK腳本。 Screenshot showing no AWK output.
你是在正確的軌道上,檢查我的答案,並嘗試修復你的代碼。 – karakfa
@karakfa謝謝你們花時間看我的問題。雖然我嘗試使用這兩種方法,但沒有收到任何輸出,但我似乎遭受了更大的問題。我添加了截圖到我原來的發佈。 – user3792046
和@Xorg,上述聲明是爲兩者而設計的。 – user3792046