Textblock zwischen zwei Wörtern extrahieren

Aufgabe:

Sie haben z.B. eine HTML Datei aus der Sie Alle Überschriften (<hx></hx>)

auslesen wollen.

Hier ein vereinfachtes Beispiel:

Dieser Text steht z.B. in einer Datei mit dem Namen index.html

<html>
<head><head>
<body>
<h1>Überschrift 1</h1>
<p>irgendeintext</p>
<h2>Überschrift 1.a</h2>
<p>irgendeinweiterertext</p>
<h3>Überschrift 1.a.a</h3>
<p>irgendeinweiterertext</p>
<h3>Überschrift 1.a.b</h3>
<p>irgendeinweiterertext</p>
<h2>Überschrift 1.b</h2>
<p>irgendeinweiterertext</p>
<p>nocheintextdarunter</p>
<p>nochwas</p>
<h1>Überschrift 2</h1>
<p>irgendeinweiterertext</p>
<h2>Überschrift 2.a</h2>
<p>irgendeinweiterertext
nochwasuninteressantes
nocheinlangweiligerkram</p>
<h1>Überschrift 3</h1>
<p>irgendeinweiterertext</p>
<body>
</html>

Sie möchten jetzt nur die Überschriften aus dem Text sehen.

Lösung:

Das können Sie unter anderem mit dem Befehl awk realisieren.

Der komplette Befehl um nur die Überschriften anzuzeigen ist:

awk '/<h.>/,/<\/h.>/' index.html >Ausgabedatei

Ergebnisausgabe:

<h1>Überschrift 1</h1>
<h2>Überschrift 1.a</h2>
<h3>Überschrift 1.a.a</h3>
<h3>Überschrift 1.a.b</h3>
<h2>Überschrift 1.b</h2>
<h1>Überschrift 2</h1>
<h2>Überschrift 2.a</h2>
<h1>Überschrift 3</h1>

Und wozu das Ganze?

Hiermit kann man sich ganz schnell ein Inhaltsverzeichnis zusammenstellen.