Eine schöne Herausforderung am Abend
paedubucher hat geschrieben:[…] Ich würde also gerne nach der Logik vorgehen, dass das erste Auftreten eines solchen Zeichens durch ein öffnendes Guillemet, das zweite durch ein schliessendes Guillemet ersetzt wird. […]
Da sich die öffnenden und schließenden Anführungszeichen an der Position der Leerzeichen (sowie der Umbrüche und Tabulatoren) identifizieren lassen, geht es auch mit sed. Weil‘s so unleserlich ist, in Einzelschritten aufgedröselt:
1. Austausch der Anführungszeichen im Fließtext:
2. Austausch vor und nach Zeilenumbrüchen sowie Dateianfang und -ende:
3. Austausch vor und nach Tabulatoren:
Code: Alles auswählen
sed 's/\t"/\t«/g;s/"\t/»\t/g;s/\t'\''/\t‹/g;s/'\''\t/›\t/g'
4.Berücksichtigung von Satzzeichen nach schließenden Anführungszeichen:
Code: Alles auswählen
sed 's/"\./»\./g;s/",/»,/g;s/":/»:/g;s/"!/»!/g;s/"?/»?/g;s/"\;/»\;/g;s/"…/»…/g;s/")/»)/g'
sed 's/'\''\./›\./g;s/'\'',/›,/g;s/'\'':/›:/g;s/'\''!/›!/g;s/'\''?/›?/g;s/'\''\;/›\;/g;s/'\''…/›…/g;s/'\'')/›)/g'
4.1 Doppelte Anführungszeichen nachbessern:
5. Zum Schluss etwaige Zollzeichen wieder reparieren:
Kompletter Befehl:
Code: Alles auswählen
sed 's/ "/ «/g;s/" /» /g;s/'\'' /› /g;s/ '\''/ ‹/g;s/^"/«/g;s/"$/»/g;s/^'\''/\‹/g;s/'\''$/\›/g;s/\t"/\t«/g;s/"\t/»\t/g;s/\t'\''/\t‹/g;s/'\''\t/›\t/g;s/"\./»\./g;s/",/»,/g;s/":/»:/g;s/"!/»!/g;s/"?/»?/g;s/"\;/»\;/g;s/"…/»…/g;s/")/»)/g;s/'\''\./›\./g;s/'\'',/›,/g;s/'\'':/›:/g;s/'\''!/›!/g;s/'\''?/›?/g;s/'\''\;/›\;/g;s/'\''…/›…/g;s/'\'')/›)/g;s/«'\''/«‹/g;s/'\''»/›»/g;s/[0-9][0-9]*»/&"/g;s/»"/"/g' Textbeispiel.txt
Gruß, Werner
Edit: Hätte mich auch gewundert, wenn ich nicht was vergessen hätte
Nach schließenden Anführungszeichen kann ja auch noch ein Satzzeichen stehen. Ich hab‘s entsprechend korrigiert.
Edit, die zweite:
‣ Ergänzung: Schließende Klammer nach Anführungszeichen wird berücksichtigt.
‣ Ein Schnipsel, um den bzw. die oben stehenden sed-Befehle von Guillemets auf deutsche Anführungszeichen umzuschreiben:
Edit, die dritte:
‣ Ergänzung: Doppelte Anführungszeichen nachgebessert