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.
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.