1,200만 줄이 포함된 파일이 있는데, 각 줄은 8개 부분으로 나누어져 있으며 모두 ";"로 구분되어 있습니다. 파일 1 예:
AAA;BBB;CCC;DDD;EEE;FFF;GGGXX;HHH
각 라인에는 고유한 ID가 있으며 비용은 $7입니다. 다음과 같이 약 20,000개의 고유 ID를 나열하는 또 다른 파일(File2)이 있습니다.
GGGXX; GGGXY; GGGXZ;
누구나 자신만의 루트가 있습니다.
File1의 전체 데이터 행을 포함하는 File2의 ID를 기반으로 새 파일을 생성하려면 결과가 필요합니다.
아래 코드를 사용하면 File2에 항목이 2개 이상 있을 때 작동하지 않는 것 같습니다.
awk -F ";" 'NR==FNR{a[$1]} ($7 in a){print}' File2.txt File1.txt
File2에 ID가 나열되는 방식에 문제가 있는 걸까요, 아니면 제가 뭔가 잘못하고 있는 걸까요?
답변1
원하는 출력을 얻으려면 다음 명령을 사용하십시오.
awk -F "," 'NR==FNR {a[$7];next}($1 in a){print $1}' file1 file2 > newfile