Remplacez les guillemets intelligents par la commande Linux sed

  • FrançaisFrançais



  • En typographie, une paire de guillemets était traditionnellement orientée l’une vers l’autre. Ils ressemblent à ça :

    « citations intelligentes »

    Comme les ordinateurs sont devenus populaires au milieu du vingtième 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 d’ouverture et de fermeture. En plus de cela, 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 droit est différent du guillemet gauche ou d’un guillemet droit.

    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. 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 dactylo de Dvorak, j’ai été témoin de la confusion sur le visage des gens lorsqu’ils découvrent que “asdf” sur mon clavier produit “aoeu” à 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 ou non imprimé sur votre clavier, possède 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 programme à l’aide d’une commande comme 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 'u2018u2019')
    RDQUO=$(echo -ne 'u201Cu201D')
    $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. Ce sont deux réimplémentations uniques de l’original sed 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 Chocolaté.

    Source

    N'oubliez pas de voter pour cet article !
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading...

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée.