다음 문서를 고려해보세요:
파일 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)을 작성하지 않는 한 "한 줄"은 경멸적인 용어입니다.