HTML-Datei auslesen und Werte extrahieren mit Linu

Hallo Forum,

ich suche eine einfache Möglichkeit mit Linux in einem Skript eine HTML-Datei zu öffnen und darin nach einem bestimmten Text suchen. Bei der Fundstelle angekommen, muss ich 9 Zeilen zurück (nach oben), wo mein Wert steht, den ich dann auslesen und im Skript weiterverwenden muss.

Habt Ihr eine Idee? Bin nicht sehr bewandert mit AWK und Bash-Skripten…

Danke vorab…
Mauronaut

Hallo,

Mit awk könnte es so aussehen:

awk '{if($0=="muster"){if(NR\>9){print a[(i+1)%9]}};i=(i+1)%9;a[i]=$0}' input.txt

Gruß
Rainer

Hallo RainerU,

danke für Deine Antwort!
Kannst Du mir bitte den AWK-Befehl noch näher erleutern?
if(NR>9)entspricht das der Zeilennummer?

Der Inhalt in meiner „Zielzeile“ sind div. HTML-Tags und mein Wert steht zwischen 100. Wie kann ich den Substring rausbekommen? Der Wert ist maximal 3 Stellig und minimal 1-stellig (0-100%)

Danke vorab!
Mauronaut

Hallo,

Kannst Du mir bitte den AWK-Befehl noch näher erleutern?

Im Array a werden die letzten 9 Zeilen gespeichert.

i zeigt auf die zueletzt gespeicherte Zeile. i wird bei jeder Zeile hochgezählt, modulo 9, % ist die Modulo/Rest-Funktion in awk. Also hat i die Werte 0, 1, 2, 3, … 8, 0, 1, 2, usw.

Wenn die gesuchte Zeile gefunden ist, dann wird der älteste Eintrag aus ausgedruckt. Auch das geht mit der Modulo-Funktion

Der Inhalt in meiner „Zielzeile“ sind div. HTML-Tags und mein
Wert steht zwischen 100. Wie kann ich den Substring
rausbekommen? Der Wert ist maximal 3 Stellig und minimal
1-stellig (0-100%)

Du kannst z.B. mit p = index($0, „muster“) nach einem Muster suchen und wenn p>0 ist mit w = substr($0, p, laenge) die gesuchten Zeichen herauskopieren.

Ansonsten: RTFM (man awk)

Gruß
R.