In tipografia, un paio di virgolette erano tradizionalmente orientate l'una verso l'altra. Sembrano così:
"virgolette intelligenti"
Quando i computer divennero popolari a metà del XX secolo, l'orientamento fu spesso abbandonato. Il set di caratteri originale dei computer non aveva molto spazio libero, quindi è logico che due virgolette doppie e due virgolette singole siano state ridotte a una sola di ciascuna nella specifica ASCII. In questi giorni il set di caratteri comune è Unicode, con molto spazio per molte virgolette e apostrofi fantasiosi, ma molte persone si sono abituate al minimalismo di un solo carattere sia per le virgolette di apertura che per quelle di chiusura. Oltre a ciò, i computer vedono effettivamente i diversi tipi di virgolette e apostrofi come caratteri distinti. In altre parole, per un copmuter la doppia virgoletta destra è diversa dalla doppia virgoletta sinistra o da una virgoletta semplice.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Sostituzione delle virgolette intelligenti con sed
I computer non sono macchine da scrivere. Quando si preme un tasto sulla tastiera, non si preme una leva a cui è attaccato un timbro. Stai semplicemente premendo un pulsante che invia un segnale al tuo computer, che il computer interpreta come una richiesta di visualizzare un carattere predefinito specifico. La richiesta dipende dalla mappa della tastiera. Come dattilografo Dvorak, ho assistito alla confusione sui volti delle persone quando scoprono che "asdf" sulla mia tastiera produce "aoeu" sullo schermo. Potresti anche aver premuto speciali combinazioni di tasti per produrre caratteri, come ™ o ß o ≠, che non sono nemmeno stampati sulla tastiera.
Ogni lettera o carattere, stampato o meno sulla tastiera, ha un codice. La codifica dei caratteri può essere espressa in diversi modi, ma su un computer le sequenze Unicode u2018 e u2019 producono ' e ' , mentre i codici u201c e u201d producono il “ e ” caratteri. Conoscere questi codici "segreti" significa che puoi sostituirli a livello di codice utilizzando un comando come sed. Qualsiasi versione di sed andrà bene, quindi puoi usare GNU sed o BSD sed o anche Busybox sed.
Ecco il semplice script di shell che uso:
#!/bin/sh
# GNU All-Permissive License
SDQUO=$(echo -ne '\u2018\u2019')
RDQUO=$(echo -ne '\u201C\u201D')
$SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"
Salva questo script come fixquotes.sh
e quindi crea un file di prova separato contenente virgolette intelligenti:
‘Single quote’
“Double quote”
Esegui lo script, quindi usa il comando cat per vedere i risultati:
$ sh ./fixquotes.sh test.txt
$ cat test.txt
'Single quote'
"Double quote"
Installa sed
Se stai usando Linux, BSD o macOS, allora hai già GNU o BSD sed
installato. Si tratta di due reimplementazioni uniche dell'originale sed
comando e per lo script in questo articolo sono funzionalmente uguali (non è vero per tutti gli script, però).
Su Windows, puoi installare GNU sed con Chocolatey.