En typographie, une paire de guillemets était traditionnellement orientée l'une vers l'autre. Ils ressemblent à ceci :
"citations intelligentes"
Lorsque les ordinateurs sont devenus populaires au milieu du XXe siècle, l'orientation a souvent été abandonnée. Le jeu de caractères d'origine des ordinateurs n'avait pas beaucoup de place, il est donc logique que deux guillemets doubles et deux guillemets simples aient été réduits à un seul de chaque dans la spécification ASCII. De nos jours, le jeu de caractères commun est Unicode, avec beaucoup d'espace pour de nombreux guillemets et apostrophes fantaisistes, mais beaucoup de gens se sont habitués au minimalisme d'un seul caractère pour les guillemets ouvrants et fermants. De plus, les ordinateurs voient en fait les différents types de guillemets et d'apostrophes comme des caractères distincts. En d'autres termes, pour un ordinateur, le guillemet double droit est différent du guillemet double gauche ou d'un guillemet droit.
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Remplacer les guillemets intelligents par sed
Les ordinateurs ne sont pas des machines à écrire. Lorsque vous appuyez sur une touche de votre clavier, vous n'appuyez pas sur un levier auquel est attaché un tampon encreur. Vous appuyez simplement sur un bouton qui envoie un signal à votre ordinateur, que l'ordinateur interprète comme une demande d'affichage d'un caractère prédéfini spécifique. La demande dépend de votre carte de clavier. En tant que dactylographe Dvorak, j'ai été témoin de la confusion sur les visages des gens lorsqu'ils découvrent que "asdf" sur mon clavier produit "aoeu" sur l'écran. Vous pouvez également avoir appuyé sur des combinaisons spéciales de touches pour produire des caractères, tels que ™ ou ß ou ≠, qui ne sont même pas imprimés sur votre clavier.
Chaque lettre ou caractère, qu'il soit imprimé ou non sur votre clavier, a un code. Le codage des caractères peut être exprimé de différentes manières, mais pour un ordinateur, les séquences Unicode u2018 et u2019 produisent ‘ et ’ , tandis que les codes u201c et u201d produisent le “ et ” personnages. Connaître ces codes "secrets" signifie que vous pouvez les remplacer par programmation à l'aide d'une commande telle que sed. N'importe quelle version de sed fera l'affaire, vous pouvez donc utiliser GNU sed ou BSD sed ou même Busybox sed.
Voici le script shell simple que j'utilise :
#!/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}"
Enregistrez ce script sous fixquotes.sh
puis créez un fichier de test séparé contenant des guillemets intelligents :
‘Single quote’
“Double quote”
Exécutez le script, puis utilisez la commande cat pour voir les résultats :
$ sh ./fixquotes.sh test.txt
$ cat test.txt
'Single quote'
"Double quote"
Installer sed
Si vous utilisez Linux, BSD ou macOS, vous avez déjà GNU ou BSD sed
installée. Il s'agit de deux réimplémentations uniques du sed
d'origine. commande, et pour le script de cet article, ils sont fonctionnellement les mêmes (ce n'est pas vrai pour tous les scripts, cependant).
Sous Windows, vous pouvez installer GNU sed avec Chocolatey.