2015-02-06 1 views
0

세 번째 필드가 패턴 파일의 패턴과 일치하지 않으면 CSV 파일에 모든 행을 인쇄해야합니다.CSV에서 행을 선택하여 GNU Linux (AWK/SED/GREP)의 패턴 파일에서 패턴과 일치하지 않습니다.

awk -F, 'FNR == NR { patterns[$0] = 1; next } patterns[$3]' FILE2 FILE1 

FILE1

dasdas,0,00567,1,lkjiou,85249 
sadsad,1,52874,0,lkjiou,00567 
asdasd,0,85249,1,lkjiou,52874 
dasdas,1,48555,0,gfdkjh,06793 
sadsad,0,98745,1,gfdkjh,45346 
asdasd,1,56321,0,gfdkjh,47832 

FILE2

00567 
98745 
45486 
54543 
48349 
96349 
56485 
19615 
56496 
39493 

OUTPUT 나는 인쇄 할 수있는 방법

dasdas,0,00567,1,lkjiou,85249 
sadsad,0,98745,1,gfdkjh,45346 

: 나는 반대를 해 봤는데, 인쇄 다음 스크립트와 일치 패턴이 일치하지 않는 행 패턴 파일? 대단히 감사합니다!

+0

"패턴"이라는 단어를 매우 모호하게 사용하지 마십시오. 숫자, 문자열 또는 정규 표현식을 찾으려고합니까? 전체 또는 부분 일치를 찾으십니까? –

답변

1

반전 선택 :

#            v-- here 
awk -F, 'FNR == NR { patterns[$0] = 1; next } !patterns[$3]' FILE2 FILE1 
0

당신은 당신의 이전 question

grep -vf <(sed -e 's/^\|$/,/g' file2) file1 

PS에서 경기를 반전해야합니다. -v 플래그

관련 문제