Hallo,
ich habe Eingabedaten in folgender Form:
blablablaMERKMAL134723MERKMAL2blablabla
blublbublubblubMERKMAL125844545MERKMAL2blubblubblub
Die zu extrahierenden Daten stehen zwischen MERKMAL1 und MERKMAL2. Ich suche nun eine Möglichkeit, wie ich nur die Daten extrahieren kann, möglichst in Form eines Shell-Skrips. Die Ausgabe sollte bei obiger Eingabe also lauten:
34723
25844545
Ich komme da bisher auf keinen grünen Zweig. Hat jemand eine Lösung? Abstrakter formuliert: Ich möchte in einer Eingabedatei nach regulären Ausdrücken suchen und NUR die Matches (nicht die kompletten Zeilen) ausgeben.
Vielen Dank!
Extraktion nach Muster
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
hallo,
> Die zu extrahierenden Daten stehen zwischen MERKMAL1 und MERKMAL2.
> Die zu extrahierenden Daten stehen zwischen MERKMAL1 und MERKMAL2.
Code: Alles auswählen
echo "blublbublubblubMERKMAL125844545MERKMAL2blubblubblub" | \
sed -e 's/.*MERKMAL1\(.*\)MERKMAL2.*/\1/'
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
Hallo TheWooder,
erstmal Herzlich Willkommen hier im Forum!
finupsen hat gleich die elegantere Möglichkeit genannt, zum "herantasten" ist es auch mögich,
erst bis MERKMAL1 durch "nix" zu ersetzen und dann ab MERKMAL2 durch "nix" zu ersezten.
http://de.linwiki.org/wiki/Linuxfibel_- ... euge_-_Sed
Gruß fuzzy
erstmal Herzlich Willkommen hier im Forum!
finupsen hat gleich die elegantere Möglichkeit genannt, zum "herantasten" ist es auch mögich,
erst bis MERKMAL1 durch "nix" zu ersetzen und dann ab MERKMAL2 durch "nix" zu ersezten.
Code: Alles auswählen
sed 's/.*MERKMAL1//;s/MERKMAL2.*//'
Gruß fuzzy