sed und RE's

Software besorgen und anwenden
Post Reply
Message
Author
Tino

sed und RE's

#1 Post by Tino »

Hallo Leute,

ich lasse mir des öfteren Text aus den verschiedensten Quellen durch Mbrola vorlesen, und filtere den Text vorher mit "sed".
Jetzt bin ich aber auf ein Problem gestoßen, was mich etwas überfordert. :(
Bei Texten aus PDF-Dokumenten wird an jedem Zeilenende ein Zeichen (hex: 0a) gesendet, was Mbrola als Satzende interpretiert (klingt besch...eiden).
Leider funktioniert der Aufruf

Code: Select all

sed  's/[\x0a]/ /g'
nicht.
Ein

Code: Select all

sed  's/[\x2e]/ /g'
funktioniert aber.
Kennt hierzu jemand eine Lösung oder hat jemand eine Erklärung warum das nicht funzt?

Gruß Tino

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#2 Post by jochen »

Eine Erklärung hätte ich: Das Newline gilt für die REs als Ende der Zeile und damit nicht als deren Bestandteil; so ähnlich wie in der /etc/passwd der Doppelpunkt ja Trenner ist und damit nicht Bestandteil eines Feldes sein kann.

Und eine Lösung habe ich auch :). Verwende einfach tr statt sed:

Code: Select all

tr '\012' ' '
So kannst Du es in einer Pipe verwenden. Da tr ein reiner Filter ist, kannst Du, falls Du damit Dateien bearbeiten willst, mit Dateieingabe- bzw. -ausgabeumlekung arbeiten:

Code: Select all

tr '\012' ' ' <input >output
Übrigens, 012 (oktal) ist gleich 10 (dezimal) ist gleich 0a (hexadezimal).

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Tino

#3 Post by Tino »

Hallo Jochen

Danke für die Erklärung und vorallem für die Lösung :D
"tr" kannte ich noch gar nicht.

Gruß Tino

Post Reply