Linux
比較兩個文件並根據兩列獲取匹配的行
我有兩個管道分隔文件,如下所示
文件1.txt
A1234|JESSIE|OPTED A1224|JOHN|OPTED L1212|RAMSAY|OPTED L1832|TIZEN|TESTED
文件2.txt
A1234|B1465 G1211|L1211 G1241|L1212 G1271|L1232
期望的輸出
A1234|B1465 G1241|L1212
我正在嘗試將 file2.txt 中的第 1 列和第 2 列與 file1.txt 中的第 1 列進行比較,如果 file1.txt 中的第一列與 file2 中的第 1 列或第 2 列匹配,則獲取 file2.txt 中的匹配行。文本。
我嘗試了下面的 awk,但它似乎沒有給我正確的結果。
awk -F'|' 'FNR==NR{a[$1]=1; next} a[$1,2]' file1.txt file2.txt > output.txt
$ awk -F '|' 'NR==FNR{a[$1]; next} ($1 in a) || ($2 in a)' file1.txt file2.txt A1234|B1465 G1241|L1212