Christoph Schnauß: Reguläre Ausdrücke in Shell

Beitrag lesen

hallo Marc,

in einer Linux-Shell versuche ich mich etwas an regulären Ausdrücken

Naja, die Überschrift deines postings ist sinnvoll und zum Inhalt der Frage passend, aber ich vermisse jetzt ein bißchen den Regulären Ausdruck, um den es dir gehen könnte ;-)

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

Hm, das ist möglich. Du solltest vielleicht der besseren Übersicht wegen dafür sorgen, daß da Leerzeichen reinkommen, also
  start INHALT ende

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

ups? bitte mal "man grep" vergleichen und/oder die Voraussetzungen genauer benennen. Du bist bereits in dem Verzeichnis, in dem "datei" liegt? Und wie ist deine Zeile
  grep 'start.*ende' Datei
zu deuten?

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

Du kannst an "grep" eine pipe anhängen resp. grep gleich "in die pipe" stopfen. Das heißt, was grep findet, kannst du sofort danach mit einem Regulären Ausdruck prüfen oder eben ausgeben lassen. Schematisch ungefähr so:
  grep 'datei' /'start'(.*)'ende'/ | 'tu irgendwas'
_bitte beachten_: so funktioniert das selbstverständlcih auch nicht. Es ist nur das ungefähre Schema.

Grüße aus Berlin

Christoph S.