Chargeur de batterie: comment choisir le meilleur en 2020?
13 août 2020
Comment enregistrer les onglets Google Chrome pour plus tard
13 août 2020

Shell Bash

Avant que les traitements de texte aient une fonction de vérification orthographique, vous deviez exécuter votre propre vérification orthographique sur un document. Et au tout début d’Unix, les systèmes n’avaient pas de programme de «vérification orthographique» dédié, mais nécessitaient plutôt un ensemble de commandes pour le faire vous-même. Voyons comment vérifier l'orthographe à la manière «Unix old school».

Vérification de l'orthographe sur la ligne de commande

De nos jours, nous ne pensons plus au correcteur orthographique de notre traitement de texte. Vous ne pouvez même plus «exécuter» une vérification orthographique. Il est plus facile de surveiller l’apparition de la ligne ondulée rouge sous les mots mal orthographiés; s'il y a une ligne rouge en dessous, vous corrigez l'orthographe.

Au début d'Unix, le système fournissait un fichier de dictionnaire (généralement / usr / share / dict / words sur la plupart des systèmes Linux) qui contenait une liste triée de mots du dictionnaire, avec chaque mot sur une ligne par lui-même. Pour vérifier l'orthographe d'un document, vous devez comparer tous les mots de votre document avec le fichier dictionnaire. Et pour ce faire, vous devez convertir votre document dans un format qui ressemble au fichier dictionnaire: une liste triée de mots, avec chaque mot sur sa propre ligne.

Le fichier de dictionnaire est entièrement en minuscules, vous devez donc d'abord convertir votre document pour utiliser des lettres minuscules. Vous faites cela avec le chat pour afficher le fichier, et la tr commande pour traduire les caractères d'un jeu à un autre. Dans ce cas, vous pouvez demander tr pour convertir toutes les lettres majuscules A-Z aux lettres minuscules a-z:

document de chat | tr A-Z a-z

Alors que le dictionnaire inclut des signes de ponctuation dans les mots tels que des tirets et des apostrophes, la liste de mots n'inclut pas la ponctuation des phrases comme les points et les points d'interrogation. La prochaine étape consiste donc à utiliser tr, cette fois pour supprimer (-ré) les personnages dont nous ne voulons pas:

document de chat | tr A-Z a-z | tr -d ',.:; ()?!'

Le fichier dictionnaire a chaque mot sur une ligne par lui-même, vous devez donc diviser votre document afin que chaque mot apparaisse sur sa propre ligne. le tr La commande peut remplacer les espaces par un caractère «nouvelle ligne», pour cela pour nous:

document de chat | tr A-Z a-z | tr -d ',.:; ()?!' | tr '' ' n'

Le tri de la sortie se fait facilement en utilisant Unix Trier commander. Ajouter le uniq commande pour nettoyer la sortie, pour supprimer les mots en double. Par exemple, vous utilisez probablement le mot «le» plusieurs fois dans n'importe quel document. En utilisant Trier puis uniq supprimera les instances répétées de «le» afin que vous n'ayez qu'un seul «le» dans votre sortie.

document de chat | tr A-Z a-z | tr -d ',.:; ()?!' | tr '' ' n' | trier | uniq

Vous êtes maintenant prêt à comparer la liste de mots de votre document avec le fichier dictionnaire! La commande Unix standard comm compare deux fichiers ligne par ligne et identifie les lignes qui sont uniques au premier fichier, uniques au deuxième fichier ou les lignes communes aux deux. Pour trouver la liste des mots mal orthographiés de votre document, vous voulez la liste des mots uniques – les mots qui se trouvent dans votre document, mais pas dans le fichier de dictionnaire. Utilisez le -2 option pour ne pas imprime les mots propres au deuxième fichier et le -3 option pour ne pas afficher les mots communs aux deux fichiers. Il ne reste que les mots propres à votre document qui n'apparaissent pas dans le dictionnaire; ce sont des mots mal orthographiés.

document de chat | tr A-Z a-z | tr -d ',.:; ()?!' | tr '' ' n' | trier | uniq | comm -2-3 - / usr / share / dict / words

Le trait d'union dit comm pour lire à partir de «l'entrée standard», qui est la sortie des commandes précédentes sur la ligne de commande.

Et c’est comment vérifier l’orthographe à la manière «old school Unix»! Permettez-moi de démontrer avec un exemple de document. J'ai volontairement mal orthographié quelques mots ici:

$ document de chat
Les premiers Unix n'avaient pas de processeurs de mots comme nous le pensons aujourd'hui. Au lieu,
vous avez écrit un document en texte brut pouvant contenir des commandes spéciales
souligner le texte ou créer une liste de points de bulet. Mais comment avez-vous vérifié
l'orthographe de votre document?

En exécutant la liste des commandes, vous trouverez cette liste de mots mal orthographiés:

$ document de chat | tr A-Z a-z | tr -d ',.:; ()?!' | tr '' ' n' | trier | uniq | comm -2-3 - mots
bulet
processeurs
thikn

La clé pour vérifier l'orthographe de cette façon est l'Unix comm commande pour comparer deux listes de mots triées. Les deux listes doivent être triées de la même manière. Votre système Linux / usr / share / dict / words Le fichier peut inclure des mots en majuscules tels que des noms communs ou des titres ou des emplacements. Par exemple, le fichier de dictionnaire sur mon système Fedora 32 contient à la fois «Minnesota» (majuscule correcte pour le nom de l'État américain) «minnesota» (tout en minuscules) sur les lignes adjacentes. Mais l'Unix Trier La commande trie les lettres majuscules séparément des lettres minuscules. Cela confondra le comm commande, qui se plaindra que le fichier d'entrée n'est pas correctement trié. Pour mieux faire correspondre la méthode «old school Unix» pour vérifier l'orthographe, vous devrez peut-être d'abord trier le fichier de dictionnaire de votre système et l'enregistrer dans un fichier séparé. Vous pouvez le faire comme ceci:

trier / usr / partager / dict / mots> mots
//]]>