Gawk 상호 참조

Gawk 상호 참조

gawk를 사용하여 데이터를 상호 참조할 때 문제가 있습니다.

gawk -F: 'FNR==NR{a[$1]=$2;next} $2 in a{print $1 FS a[$2]}' email.phone.txt name.email.txt > name.phone.txt

이메일.전화 콘텐츠 예:

[email protected]:012345
[email protected]:912345

name.email.txt 예:

Charles:[email protected]
Erica:[email protected]

예상 출력

Charles:012345
Charles:912345
Erica:012345
Erica:912345

그러나 해당 이메일과 마지막으로 일치하는 전화만 출력하므로 다음과 같이 출력됩니다.

Charles:912345
Erica:912345

그리고 해당 이메일에 사용한 첫 번째 전화를 끄십시오.

답변1

GNU awk ( gawk) --그러나아니요일반 awk - 지원됨진짜다차원 배열의 경우 다음을 사용할 수 있습니다.

gawk -F: '
    FNR==NR{a[$1][$2]=1;next}
    $2 in a{for(i in a[$2]) print $1 FS i}
' email.phone.txt name.email.txt

관련 정보