2개 패턴 사이에 sed 또는 awk 인쇄 [패턴 제외] [중복]

2개 패턴 사이에 sed 또는 awk 인쇄 [패턴 제외] [중복]

다음과 같은 텍스트가 있습니다..

[start]
this
is my line
[end]

내 출력은 다음과 같아야합니다

this
is my line

도움이 필요하다..

다음 조합을 시도했습니다.

sed -n '/start/,/end/p' $File  & sed -e "s/]/']/" -e "s/\[/['/"   $file

하지만 이 모델도 제안합니다.

답변1

첫 번째 행과 마지막 행을 삭제할 수 있습니다.

$ sed '1d;$d'

따라서 입력 파일에는 작성한 텍스트만 포함되어야 합니다. 사이에 있는 부분을 찾아서 다음과 같이 수행해야 하는 [start]경우 :[end]

$ sed -n '/start/,/end/p' $File | sed '1d;$d'

답변2

이것이 귀하의 요구 사항을 충족합니까?

sed -n '/^[start]/,/[end]/p'

위와 동등한 것은 다음과 같습니다.

sed '/^[start]/,/[end]/!d'

관련 정보