awk에서 유사한 값 제외

awk에서 유사한 값 제외

다음 문서를 고려해보세요:

파일 1:

boo,194,2322
foo,999,7559

파일 2:

boo,2322
boo,4526
foo,4222
foo,4223

Field1링크가 필요해파일 1Field1이내에파일 2Field2그리고 관련 정보를 얻으세요.파일 2Field3, 결과가 in 과 같으면 결과를 제외합니다.파일 1.

결과는 다음과 같습니다.

boo,4526
foo,4222,4223

아래 스크립트를 시도했지만 유사한 값을 제외하지 않습니다.

awk -F, 'NF==3{arr[$1]=$3}{if(arr[$1]==$1){print $2}}'

답변1

$1인지 확인 arr하고, 그렇다면 값이 와 다르면 $2인쇄해야 합니다.

awk -F, 'FNR == NR { arr[$1] = $3; next }
         { if ($1 in arr && arr[$1] != $2) print $2 }'

FNR == NR및를 사용하는 것은 next다른 파일의 줄과 다른 첫 번째 파일의 줄을 처리하는 전통적인 방법입니다. 예, 한 줄에 바둑판식으로 배열할 수 있지만 APL(또는 Perl)을 작성하지 않는 한 "한 줄"은 경멸적인 용어입니다.

관련 정보