![awk에서 파일 길이가 다른 두 입력 파일에서 일치하는 레코드를 얻는 방법은 무엇입니까?](https://linux55.com/image/165734/awk%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%20%EA%B8%B8%EC%9D%B4%EA%B0%80%20%EB%8B%A4%EB%A5%B8%20%EB%91%90%20%EC%9E%85%EB%A0%A5%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EB%A0%88%EC%BD%94%EB%93%9C%EB%A5%BC%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
입력 파일
file 1==HQ|SCORE
file 2==HQ|WRST_PMT_STAT|total_exposure
결과물 파일
HQ|WRST_PMT_STAT|total_exposure|SCORE
이 두 파일의 공통점은HQ
awk -F'|' 'NR==FNR{c[$1]++;next};c[$1]' File1 file2 > output
file2 입력만 받았지만 SCORE
. 두 파일 모두 60,000개의 레코드를 포함합니다.
답변1
다음 명령을 사용해보십시오
awk -F "|" 'NR==FNR {b[FNR]=$2;a[$1];next}($1 in a){print $0"|"b[FNR]}' file1 file2
산출
HQ|WRST_PMT_STAT|total_exposure|SCORE