Drucken von Linien zwischen zwei regex mit sed

Ich habe eine Textdatei, die enthält mehrere Abschnitte, und ich will, drucken Sie einen dieser Abschnitte.

Teil der Datei sieht aus wie

3. line 3
4. line 4

## Screenshots ##

1. line 1
2. line 2
3. line 3
4. line 4

## Changelog ##

3. line 3
4. line 4

Aus dieser möchte ich abrufen, alle Zeilen, die zwischen ## Screenshots ## und der Beginn des nächsten Abschnitts. Hier der nächste Abschnitt ist ## Changelog ##, aber es könnte alles sein. So ist die einzige Sache, die wir uns verlassen können ist, dass es beginnt mit ##.

Vom ein anderer thread, fand ich den folgenden code

sed -e "H;/${pattern}/h" -e '$g;$!d' $file

die ich geändert, um

sed -e "H;/## Screenshots ##/h" -e '$g;$!d' readme.md

Nun, es ruft alle Linien ab ## Screenshots ##, aber es druckt alle Zeilen, bis das Ende der Datei.

Ich dann an anderen sed wie

sed -e "H;/## Screenshots ##/h" -e '$g;$!d' readme.md | sed "/^##/q" 

Aber jetzt druckt er nur

## Screenshots ##

Ist es trotzdem kann ich drucken, werden alle Linien in der screenshots-Sektion?

InformationsquelleAutor Sudar | 2013-05-16

Schreibe einen Kommentar