Linux에서 여러 줄 정규 표현식의 결과를 찾고 싶습니다. grep을 시도했지만 대부분의 Linux 유틸리티와 마찬가지로 라인 기반입니다.
여러 줄을 검색하여 일치 항목을 간단히 출력할 수 있는 유사한 기능이 있습니까?
직접 정규 표현식을 제공할 수 없다면 Perl, awk 등은 사용할 수 없습니다.
질문
내 Subversion 저장소에서 svn propget --recursive를 수행했으며 이제 ^http[^] 형식의 정규 표현식이 필요한 모든 트렁크 항목을 추출하려고 합니다.트렁크.$$(줄 시작 부분에 "http"로 시작하고 빈 줄로 끝납니다.
답변1
구문 분석하려는 정확한 형식을 모르겠습니다. 항상 단락의 시작 부분에 있는 경우 http
(단락이 하나 이상의 빈 줄로 구분되는 경우) 단락 모드(각 단락은 레코드임)에서 awk를 호출하고 로 시작하는 레코드를 인쇄할 수 있습니다 http
. Perl도 비슷한 패턴을 가지고 있습니다.
awk -vRS= '/^http[^ ]/'
perl -000 -ne 'print if /^http[^ ]/'
항상 앞에 빈 줄이 없는 경우 빈 줄이 보이면 인쇄를 시작하고 중지 http
할 수 있습니다 . http
예를 들어:
awk '/^http[^ ]/, /^$/'
perl -ne 'print if /^http[^ ]/../^$/'