Grüsst Euch alle
Ich hab da eine Datei. War ursprünglich mal eine Mail. Weil das Mail so oft weitergesendet wurde, schaut das ganze so aus:
------>8-------
> > > > > Text auf der Zeile n-1
> > > > > Text auf der Zeile n
> > >Text auf der Zeile n+1
------>8-------
Wer kennts nicht. Leider sind nicht immer gleich viele '>' in einer Zeile. Meine Frage: Kann jemand einen Shellaufruf aus dem Ärmel schütteln, der mir aus der obigen Datei, diese Datei erstellt:
------>8-------
Text auf der Zeile n-1
Text auf der Zeile n
Text auf der Zeile n+1
------>8-------
Irgendwas mit awk oder sed oder cut?
Danke schön
fb
Zeichen aus Datei löschen von der Bash aus
Re: Zeichen aus Datei löschen von der Bash aus
Die erwähnten Tools zeigen auf jeden Fall in die richtige Richtung. Vielleicht solltest Du Dich mal ein bisschen mit Regulären Ausdrücken beschäftigen, dann ist die Lösung nicht schwer...<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed 's/^\<!--no-->(> \<!--no-->)*//' meine-lange-mail > meine-lange-mail-ohne-quotes
</font><hr></pre></blockquote>Der Reguläre Ausdruck liest sich wie folgt: Am Anfang der Zeile (^) soll eine Folge von beliebig vielen (*) "> " (\<!--no-->(> \<!--no-->)) stehen. Die müssen geklammert sein, weil der Stern sonst nur auf das Leerzeichen wirken würde.
Das substitute-Kommando (s///) ersetzt alle Treffer darauf durch nichts - schon sind die gequoteten Quotes weg.
Jochen
sed 's/^\<!--no-->(> \<!--no-->)*//' meine-lange-mail > meine-lange-mail-ohne-quotes
</font><hr></pre></blockquote>Der Reguläre Ausdruck liest sich wie folgt: Am Anfang der Zeile (^) soll eine Folge von beliebig vielen (*) "> " (\<!--no-->(> \<!--no-->)) stehen. Die müssen geklammert sein, weil der Stern sonst nur auf das Leerzeichen wirken würde.
Das substitute-Kommando (s///) ersetzt alle Treffer darauf durch nichts - schon sind die gequoteten Quotes weg.
Jochen