반응형
sed 특정 문자열을 포함하지 않는 줄 삭제
나는 처음 sed
이며 다음 질문이 있습니다. 이 예에서 :
some text here
blah blah 123
another new line
some other text as well
another line
나도 문자열 '텍스트'가 포함를 제외한 모든 라인 삭제할 하고 , 또는 문자열 'ㅋ'이처럼 내 출력 파일 외모 때문에 :
some text here
blah blah 123
some other text as well
이것을 사용하여 sed
어떻게 할 수 있는지 힌트 ?
이것은 당신을 위해 일할 수 있습니다.
sed '/text\|blah/!d' file
some text here
blah blah 123
some other text as well
'text'또는 'blah'(또는 둘 다)와 일치하는 행만 인쇄하려고합니다. 여기서 'and'와 'or'의 구분이 다소 중요합니다.
sed -n -e '/text/{p;n;}' -e '/blah/{p;n;}' your_data_file
-n
수단은 기본적으로 인쇄되지 않습니다. 첫 번째 패턴은 '텍스트'를 검색하고 일치하면 인쇄하고 다음 줄로 건너 뜁니다. 두 번째 패턴은 'blah'에 대해 동일합니다. 'n'이 없으면 'text and blah'가 포함 된 행이 두 번 인쇄됩니다. 를 사용할 수도 있지만 -e '/blah/p'
대칭이 더 좋습니다. 특히 일치하는 단어 목록을 확장해야하는 경우 더욱 그렇습니다.
사용중인 버전이 sed
확장 정규식 을 지원하는 경우 (예 : GNU sed
에서를 사용 -r
) 다음 과 같이 단순화 할 수 있습니다.
sed -r -n -e '/text|blah/p' your_data_file
awk를 통해 간단히 할 수 있습니다.
$ awk '/blah|text/' file
some text here
blah blah 123
some other text as well
참고 URL : https://stackoverflow.com/questions/9541867/sed-delete-lines-not-containing-specific-string
반응형
'Program Tip' 카테고리의 다른 글
Html Agility Pack은 여전히 최고의 .NET HTML 파서입니까? (0) | 2020.12.11 |
---|---|
InnoDB가 테이블 / 테이블에서 외래 키를 다시 확인하도록 강제합니까? (0) | 2020.12.11 |
JSONException : java.lang.String 유형의 값을 JSONObject로 변환 할 수 없습니다. (0) | 2020.12.11 |
Pandas to_csv가있는 float64 (0) | 2020.12.11 |
angularjs를 사용한 두 개의 중첩 클릭 이벤트 (0) | 2020.12.10 |