파일 1의 $1과 파일 2의 $2를 사용하여 두 개의 서로 다른 파일을 일치시키고 파일 1의 파일 2의 $1을 인쇄해야 합니다.
입력 파일 1
101 2
101 5
101 7
103 2
103 3
103 4
105 3
105 2
입력 파일 2
24 101
23 103
26 105
원하는 출력
101 2 24
101 5 24
101 7 24
103 2 23
103 3 23
103 4 23
105 3 26
105 2 26
다음 코드를 시도했지만 잘못된 출력이 제공됩니다.
awk 'FNR==NR{a[$2]=$0;next};{print a[$2]}' file2 file1
답변1
고전적인 직업 join
:
join -1 1 -2 2 file1 file2
-1 1
첫 번째 파일의 필드를 지정합니다.-2 2
두 번째 파일의 필드를 지정합니다.
답변2
코드부터 시작하여 awk
거의 다 왔으므로 솔루션도 게시하겠습니다.
awk 'FNR==NR { a[$2]=$1; next; } { print $0,a[$1] } ' file2 file1
산출:
101 2 24
101 5 24
101 7 24
103 2 23
103 3 23
103 4 23
105 3 26
105 2 26