sed 편집 텍스트 블록: 탐욕스러운 일치 없음

sed 편집 텍스트 블록: 탐욕스러운 일치 없음

내가 잡을 수 있었으면 좋겠어첫 번째sed를 사용하여 파일에 HTML 주석을 추가합니다.

여러 개의 주석 블록을 사용 '/<!--/,/-->/하고 가지면 첫 번째 주석 블록과 마지막 주석 블록 사이의 모든 항목과도 ​​일치합니다!

어떤 제안이 있으십니까?

예는 다음과 같습니다.

<!-- 

First comment block

-->

Content

<!--

Second comment block

-->

예상되는 출력은 다음과 같아야 합니다.

<!-- 

First comment block

-->

한 줄 주석에도 작동해야 합니다.

<!-- First comment block -->

답변1

당신은 다음과 같은 일을 할 것입니다 :

sed '/<!--/,$!d;/-->/q'

첫 번째 명령은 첫 번째 일치 항목을 <!--제외한 모든 줄을 삭제합니다. 첫 번째 명령으로 삭제되지 않은 것 중에서 닫는 태그를 검색하고 종료합니다(역시 해당 행을 인쇄한 후).

Perl을 사용하여 주석 태그를 제거합니다.

perl -ln0777 -e 'print $1 if /<!--\s*(.*?)\s*-->/'

관련 정보