GNU/Linux >> Tutoriels Linux >  >> Linux

Remplacez les guillemets intelligents par la commande Linux sed

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.


Linux
  1. Vérifiez l'état du fichier sous Linux avec la commande stat

  2. Planifier une tâche avec la commande Linux at

  3. Comment utiliser la commande Linux sed

  4. Maîtrisez la commande Linux ls

  5. La commande Linux Sed :utilisation et exemples

Commande Linux sed :comment utiliser l'éditeur de flux

Commande Linux wc avec exemples

Comment rechercher des fichiers sous Linux avec la commande Find

Comment rechercher des fichiers avec la commande fd sous Linux

Les 50 exemples pratiques de la commande SED sous Linux

Utilisation de la commande Linux sed avec des exemples