grep에서 탐욕스럽지 않은 정규 표현식을 사용하는 방법은 무엇입니까?

grep에서 탐욕스럽지 않은 정규 표현식을 사용하는 방법은 무엇입니까?

이것페이지에는 비탐욕적 검색을 위해 정규식의 모든 승수 뒤에 "?"가 붙을 수 있다고 나와 있습니다. 그러나 grep에서 작동시키는 방법을 모르겠습니다.

grep -E '^.*?$' file

전체 텍스트를 인쇄하세요.

탐욕스럽지 않은 정규식 검색에 grep을 사용하는 방법은 무엇입니까?

답변1

grepPCRE(Perl Compatible Regular Expressions) 지원이 필요합니다 . 예를 들어, GNU에는 grep이 옵션이 있습니다. 이는 -P이 옵션을 통해 활용될 수 있습니다. pcregrep일반 패키징을 통해 많은 시스템에 설치할 수 있는 독립 실행형 프로그램도 있습니다 .

ERE(확장 정규 표현식)를 활성화 해도 -E비탐욕적인 토큰 일치는 지원되지 않습니다 ?.

따라서 GNU를 사용하면 다음 grep을 수행할 수 있습니다.

grep -Po '^.*?foo' file

처음부터 첫 번째 항목과 일치(및 추출)합니다 foo.

관련 정보