다른 파일을 검색하고 특정 필드에 값을 추가하세요

다른 파일을 검색하고 특정 필드에 값을 추가하세요

파일 A:

Castro  2
Manuel  5
Daniela 8
...

파일 B:

Tom//UK  No
Mark//UK No
Castro//Chile Yes
...
Manuel//Spain No

산출:

Castro 2 Yes
Manuel 5 No
...

파일 A의 각 이름을 열거하고 파일 B에서 검색한 다음 두 번째 필드를 파일 A의 필드 3에 추가합니다.

내가 노력하는 것 :

cat File_A.txt | awk -F '\t' '{ print $1 }; $3=`grep -i $2 File_B.txt | head -1 | cut -f2`'

답변1

Awk해결책:

awk 'NR == FNR{ names[$1] = $2; next }
     { name = substr($1, 1, index($1, "/") - 1) }
     name in names { print name, names[name], $NF }' file1 file2

산출:

Castro 2 Yes
Manuel 5 No

답변2

또 다른 awk해결책:

awk -F'//| ' 'NR==FNR{a[$1]=$3;next}NR>FNR{print $0,a[$1]}' fileB fileA

fileB에 fileA에 존재하는 이름이 없으면 이 줄이 인쇄됩니다.

관련 정보