파일 1:
01 999 234 432 666
02 888 453 234 763
03 145 334 235 456
04 234 784 482 785
05 868 453 546 787
파일 2:
01
01
02
03
03
05
두 파일의 첫 번째 열을 일치시키고 다음과 같은 예상 출력을 얻고 싶기 때문입니다.
예상 출력:
999 234 432 666
999 234 432 666
888 453 234 763
145 334 235 456
145 334 235 456
868 453 546 787
다음 코드를 시도했습니다.
awk 'NR==FNR{a[$1]=$1; next} {if($1 in a) {print $2" "$3" "$4" "$5}}' file2 file1
그러나 내가 얻는 것은 이것이다:
999 234 432 666
888 453 234 763
145 334 235 456
868 453 546 787
그렇다면 awk를 사용하여 예상되는 출력을 어떻게 얻습니까?
답변1
첫 번째 파일에서 조회 테이블을 작성한 다음 두 번째 파일에서 색인을 생성해야 합니다.
$ awk 'NR==FNR {a[$1] = $2 FS $3 FS $4 FS $5; next} {print a[$1]}' file1 file2
999 234 432 666
999 234 432 666
888 453 234 763
145 334 235 456
145 334 235 456
868 453 546 787
또는,
join -o1.2,1.3,1.4,1.5 file1 file2