我編寫了一個AWK腳本來處理文本文件,現在需要對其進行擴展,以便處理的輸出從另一個文件中獲取數據,這取決於第一個文件中的字段。這裏是我的意思的一個例子;AWK腳本處理一個文件並讀取另一個文件
FILE1.TXT
abc123~17~yy~12345678
abc456~12~yy~23456789
abc789~34~zz~12345678
FILE2.TXT
abc123~11~22~33~ABC-57
abc456~22~11~33~ABC-99
abc789~33~22~11~ABC-12
我當前awk腳本中提取並處理來自其第四字段是 '12345678' 的FILE1.TXT的每一行,所以它找到2線。
我現在想要擴展這一點,所以從行我發現,說
abc123~xx~yy~12345678
我們採取ABC123和搜索,在FILE2.TXT並打印該行的第四場也是如此。
例如, 我的awk腳本將在File1.txt的字段4中搜索令牌,然後在字段1中打印長整型字段,並在File2.txt中爲字段1打印長整型字段4
因此,如果我們正在搜索12345678,我的輸出將是
12345678 abc123 ABC-57 17
12345678 abc789 ABC-12 34
(17和34來自File1.txt中的字段2)。
總之,在File1.txt的Field 4中搜索一個字符串,在File2.txt中找到一行,其中File1.txt中的Field 1與File1.txt中的Field 1匹配。然後打印
File.Field4 File1.Field1 File2.Field4 File1.Field2
我希望是明確的。
我試圖grep for File2.txt中的'abc123'字符串,然後選擇第4個字段。這似乎不起作用,現在我認爲一個File2.txt的AWK數組可以在字段1上索引並存儲字段4。
我不知道如何去做這件事。 (請注意,這是我想要做的一個精簡的例子,我真正的需求在文件中有更多的數據)。
這是很好的感謝,我已經適應了我的確切需求,除了我現在意識到我的例子不是我想要的。抱歉。當我打印結果時,我需要在File1.txt中包含一個額外的字段,並說明第二個字段($ 2)。 現在,如果我明白你在上面說的話,在BEGIN之後{...}中有兩組代碼,第一組代碼是File1.txt,第二組代碼是File2.txt,所以第二個代碼塊的代碼可以從第一塊代碼訪問數據。 (這有道理嗎?) – Nerdio
我編輯了我原來的帖子來反映這一點。 – Nerdio
@Nerdio我看到你已經明白你自己了。好一個。 –