두 파일을 비교하고 두 열을 기반으로 일치하는 행을 가져옵니다.

두 파일을 비교하고 두 열을 기반으로 일치하는 행을 가져옵니다.

아래와 같이 두 개의 파이프로 구분된 파일이 있습니다.

파일 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에서 일치하는 줄을 가져옵니다. TXT.

아래 awk를 시도했지만 올바른 결과를 얻지 못하는 것 같습니다.

awk -F'|' 'FNR==NR{a[$1]=1; next} a[$1,2]' file1.txt file2.txt > output.txt

답변1

$ awk -F '|' 'NR==FNR{a[$1]; next} ($1 in a) || ($2 in a)' file1.txt file2.txt
A1234|B1465
G1241|L1212

관련 정보