왼쪽(외부) 조인 [중복]

왼쪽(외부) 조인 [중복]

내 파일:

file1.txt
 =========
 key1
 key1
 key1
 key1   
 key2
 key2   
 key3
 key3
 key3
 key4
 key4   

 file2.txt
 =========
 key1   22
 key2   23
 key3   24


 Expected Output :
 ==================
 key1   22
 key1   22
 key1   22
 key1   22    
 key2   23
 key2   23   
 key3   24
 key3   24
 key3   24

내가 찾은 모든 솔루션은 문자열과 반복적으로 일치하지 않습니다.

awk '{a[$1]=a[$1]" "$2} END{for(i in a)print i, a[i]}'
join -a 1

왼쪽 외부 조인을 생성하려면 이 접근 방식에서 무엇을 수정해야 합니까?

답변1

Awk해결책:

awk 'NR==FNR{ a[$1]=$2; next }$1 in a{ $2=a[$1]; print }' file2.txt file1.txt

산출:

key1 22
key1 22
key1 22
key1 22
key2 23
key2 23
key3 24
key3 24
key3 24

아니면 단순히join주문하다:

join -o1.1,2.2 file1.txt file2.txt

관련 정보