Code: Alles auswählen
$ sed 's/\(^.*<Absender>\)\(.*\)\(<\/Absender>.*$\)/\2/' /tmp/2013-01-30_23-45-28_AMPEL-234234_40904.rep
WIESBADEN
MAINZ
$
Im Prinzip sucht man sich den Zeilenanfang bis zum Anfangspattern (
\1), den Endpattern bis zum Zeilenende (
\3) und alles dazwischen (
\2) als einzelne Ausdruecke der Form
\(foo\), und ersetzt die komplette Zeile mit dem mittleren. Ich find's unsauber, aber es funktioniert.
Das
cat, das
read und
echo kannst du dir uebrigens sparen. Einfach
sed mit dem Dateinamen als Argument aufrufen, so wie oben. Oder per Eingabeumlenkung/ Wenn es die Newline unbedingt braucht, kann man sie im replace-String unterbringen.
Gruss Cae