Advertisements

Ersetzen Sie intelligente Anführungszeichen durch den Linux-Befehl sed

In der Typografie waren traditionell zwei Anführungszeichen aufeinander ausgerichtet. Sie sehen so aus:

„intelligente Zitate“

Als Computer Mitte des 20. Jahrhunderts populär wurden, wurde die Orientierung oft aufgegeben. Der ursprüngliche Zeichensatz von Computern hatte nicht viel Platz, daher ist es sinnvoll, dass zwei doppelte und zwei einfache Anführungszeichen in der ASCII-Spezifikation auf jeweils nur eins reduziert wurden. Heutzutage ist der übliche Zeichensatz Unicode, mit viel Platz für viele ausgefallene Anführungszeichen und Apostrophe, aber viele Leute haben sich an den Minimalismus nur eines Zeichens für öffnende und schließende Anführungszeichen gewöhnt. Außerdem sehen Computer die verschiedenen Arten von Anführungszeichen und Apostrophen tatsächlich als unterschiedliche Zeichen. Mit anderen Worten, für einen Computer unterscheidet sich das rechte doppelte Anführungszeichen von dem linken doppelten Anführungszeichen oder einem geraden Anführungszeichen.

Weitere Linux-Ressourcen

Ersetzen von intelligenten Anführungszeichen durch sed

Computer sind keine Schreibmaschinen. Wenn Sie eine Taste auf Ihrer Tastatur drücken, drücken Sie keinen Hebel, an dem ein Tintenstempel angebracht ist. Sie drücken einfach eine Taste, die ein Signal an Ihren Computer sendet, das der Computer als Aufforderung interpretiert, ein bestimmtes vordefiniertes Zeichen anzuzeigen. Die Anfrage hängt von Ihrer Tastaturbelegung ab. Als Dvorak-Schreibkraft habe ich die Verwirrung in den Gesichtern der Leute gesehen, wenn sie entdecken, dass “asdf” auf meiner Tastatur “aoeu” auf dem Bildschirm erzeugt. Möglicherweise haben Sie auch spezielle Tastenkombinationen gedrückt, um Zeichen wie ™ oder ß oder ≠ zu erzeugen, die nicht einmal auf Ihrer Tastatur gedruckt sind.

Jeder Buchstabe oder jedes Zeichen, ob auf Ihrer Tastatur gedruckt oder nicht, hat einen Code. Die Zeichenkodierung kann auf verschiedene Weise ausgedrückt werden, aber für einen Computer erzeugen die Unicode-Sequenzen u2018 und u2019 und , während die Codes u201c und u201d die und Zeichen. Wenn Sie diese “geheimen” Codes kennen, können Sie sie programmgesteuert mit einem Befehl wie sed ersetzen. Jede Version von sed reicht aus, Sie können also GNU sed oder BSD sed oder sogar Busybox sed verwenden.

Hier ist das einfache Shell-Skript, das ich verwende:

#!/bin/sh
# GNU All-Permissive License

SDQUO=$(echo -ne 'u2018u2019')
RDQUO=$(echo -ne 'u201Cu201D')
$SED -i -e "s/[$SDQUO]/'/g" -e "s/[$RDQUO]/"/g" "${1}"

Dieses Skript speichern unter fixquotes.sh und erstellen Sie dann eine separate Testdatei mit intelligenten Anführungszeichen:

‘Single quote’
“Double quote”

Führen Sie das Skript aus und verwenden Sie dann den Befehl cat, um die Ergebnisse anzuzeigen:

$ sh ./fixquotes.sh test.txt
$ cat test.txt
'Single quote'
"Double quote"

sed installieren

Wenn Sie Linux, BSD oder macOS verwenden, haben Sie bereits GNU oder BSD sed Eingerichtet. Dies sind zwei einzigartige Neuimplementierungen des Originals sed Befehl, und für das Skript in diesem Artikel sind sie funktional gleich (das gilt jedoch nicht für alle Skripte).

Unter Windows können Sie GNU sed mit Chocolatey installieren.

Ersetzen Sie intelligente Anführungszeichen durch den Linux-Befehl sed

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top