2012-04-17 3 views
21

을 제외한 모든 줄 나열 "T"다음에 "H"가 나오는 텍스트 파일이있는 모든 줄을 자동으로 제거하려고합니다. 나는 grep을 사용하여 출력을 다른 파일로 보냈지 만, 이것을 수행하는 데 도움이되는 magic regex를 생각해 낼 수는 없습니다.Grep Regex :

grep이 올바른 도구가 아닌 경우 awk, sed 또는 다른 Linux 도구를 사용해도 상관 없습니다.

답변

51

이를 수행해야한다 :

grep -v 'T[^H]' 

-v :

일치 인쇄 라인하지 [^ H가]. 모든 문자뿐만 H

+2

'의 두 인스턴스 일치 *'불필요 grep이 전체 라인을 검색하여 일치 항목을 찾습니다 –

+0

감사합니다.이 사실을 반영하여 편집했습니다. – byrondrossos

9

당신은 할 수 있습니다 :

grep -v 'T[^H]' input 

-v는 패턴과 일치하는 라인을 나열하지 않습니다 그렙의 역 일치 옵션입니다.

사용 된 정규 표현식은 이며 TH 이외의 문자가 오는 모든 행과 일치합니다.