GNU/Linux >> Linux Esercitazione >  >> Linux

Sostituisci le virgolette intelligenti con il comando sed di Linux

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.


Linux
  1. Pianificazione delle attività con il comando cron di Linux

  2. Diagnostica i problemi di connettività con il comando ping di Linux

  3. Controlla i comandi e le attività con il comando watch di Linux

  4. Sostituisci le virgolette intelligenti con il comando sed di Linux

  5. Controlla lo stato del file su Linux con il comando stat

Comando Linux sed:come utilizzare l'editor di flusso

Comando wc Linux con esempi

Come trovare file in Linux con il comando Trova

Come trovare file con il comando fd in Linux

I 50 esempi pratici del comando SED in Linux

Utilizzo del comando Linux sed con esempi