Vinzenz Mai: Reguläre Ausdrücke in Shell

Beitrag lesen

Hallo Marc

Ich habe eine Datei namens "Datei", in dieser stehen ganz viele Zeilen, unter anderem auch diese:
startINHALTende

Wenn ich nun folgendes Kommando in der Shell ausführe, bekomme ich die Zeile zurück:
grep 'start.*ende' Datei

Ich möchte aber nicht die ganze Zeile, sondern nur INHALT zurück bekommen, also ausschließlich das was zwischen "start" und "ende" steht.

Lese Ausgabe von grep in die Variable var ein

Parameter -o ist überflüssig, wenn die Zeile nur den Suchtext enthält

var=$(grep -o 'start.*ende' datei)

Werte den Ausdruck per Mustererkennung aus

erg=$(expr match $dat 'start*([^ ]*)ende')

Die Variable erg enthält nun INHALT, Du kannst mit $erg auf die Variable zugreifen.

Freundliche Grüße

Vinzenz