Comment utiliser la commande look sous Linux

La commande Linux look parcourt un fichier et répertorie toutes les lignes commençant par un mot ou une phrase en particulier. Mais attention! Il se comporte différemment sur différentes distributions Linux. Ce tutoriel vous montrera comment l’utiliser.

La commande look d’Ubuntu se comporte différemment

Pour une commande simple mais utile, look m’a certainement donné la solution lorsque je recherchais cet article. Il y avait deux problèmes: la compatibilité et la documentation.

Cet article a été vérifié à l’aide d’Ubuntu, de Fedora et de Manjaro. look était fourni avec chacune de ces distributions, ce qui était génial. Le problème était que le comportement n’était pas le même dans les trois. La version Ubuntu était très différente. Selon le Pages de manuel Ubuntu, le comportement doit être le même.

J’ai finalement compris. look utilise traditionnellement un recherche binaire, tandis que le look Ubuntu utilise un recherche linéaire. Les pages de manuel en ligne Ubuntu pour Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) et Disco Dingo (19.04) indiquent toutes que la version Ubuntu utilise une recherche binaire, ce qui n’est pas le cas.

Si nous jetons un coup d’œil à la page de manuel Ubuntu locale, nous voyons qu’elle indique clairement que leur apparence utilise une recherche linéaire. Il existe une option de ligne de commande pour le forcer à utiliser une recherche binaire. Aucune des versions des autres distributions n’a la possibilité de choisir entre les méthodes de recherche.

man look

En faisant défiler la page de manuel, nous voyons la section qui décrit cette version de look en utilisant une recherche linéaire au lieu d’une recherche binaire.

  Comment utiliser Google Maps pour la navigation dans Apple CarPlay

Ubuntu regarde la page de manuel dans une fenêtre de terminal.

La morale de l’histoire est de vérifier d’abord les pages de manuel locales.

Recherche linéaire et recherche binaire

La méthode de recherche binaire est plus rapide et plus efficace qu’une recherche linéaire. Travailler avec de gros fichiers rend cela très apparent. L’inconvénient de la recherche binaire est que votre fichier doit être trié. Si vous ne souhaitez pas trier votre fichier, triez-en une copie, puis utilisez-la avec look.

Nous allons le démontrer ailleurs dans cet article. Sachez simplement que sur Fedora, Manjaro, et j’attends la plupart du reste du monde Linux, vous devrez créer une copie triée de votre fichier et travailler avec cela.

Installer des mots

look peut fonctionner avec n’importe quel fichier texte de votre choix ou avec le fichier de dictionnaire local « words ».

Sur Manjaro, vous devez installer le fichier «mots». Utilisez cette commande:

sudo pacman -Syu words

Utilisation du look

Pour cet article, nous allons travailler avec un fichier texte du Edward Lear poème «The Jumblies».

Regardons son contenu avec cette commande:

less the-jumblies.txt

Voici la première partie du poème. Notez que nous utilisons Ubuntu, donc le fichier reste non trié. Pour Fedora et Manjaro, nous travaillerions avec une copie triée du fichier, que nous aborderons plus loin dans cet article.

  Comment enregistrer une photo du presse-papiers dans la pellicule sur iOS

Si nous recherchons des lignes qui commencent par le mot «Ils», nous découvrirons une partie de ce que les Jumblies ont fait.

look They the-jumblies.txt

look répond en listant ces lignes:

Sortie de

Ignorer la casse des caractères

Pour que l’apparence ignore les différences entre les majuscules et les minuscules, utilisez l’option -f (ignorer la casse). Nous avons de nouveau utilisé «ils» comme mot de recherche, mais cette fois, il est en minuscules.

look -f they the-jumblies.txt

regardez -f ils le-jumblies.txt dans une fenêtre de terminal.

Cette fois, les résultats incluent une ligne supplémentaire.

Sortie de

La ligne commençant par « ILS » a été manquée dans le dernier ensemble de résultats, car elle est en majuscules et ne correspond pas à notre terme de recherche « Ils ».

Ignorer la casse permet à Look de l’inclure dans les résultats.

Utilisation de l’apparence avec un fichier trié

Si votre distribution Linux a une version de look qui suit le comportement traditionnel d’utiliser une recherche binaire, vous devez soit trier votre fichier, soit travailler avec une copie triée de celui-ci.

Répétons la commande pour rechercher «Ils», mais cette fois sur Manjaro.

regardez They the-jumblies.txt dans une fenêtre de terminal.

Comme vous pouvez le voir, aucun résultat n’a été renvoyé. Mais nous savons qu’il y a des vers dans le poème qui commencent par le mot «Ils».

Faisons une copie triée du fichier. Si vous envisagez d’utiliser les options -f (ignorer la casse) ou -d (caractères alphanumériques et espaces uniquement) avec look, vous devez les utiliser lorsque vous triez le fichier.

L’option -o (sortie) vous permet de spécifier le nom du fichier auquel les lignes triées doivent être ajoutées. Dans cet exemple, il s’agit de «sorted.txt».

sort -f -d the-jumblies.txt -o sorted.txt

sort -f -d the-jumblies.txt -o sorted.txt dans une fenêtre de terminal.

Examinons le fichier sorted.txt, puis utilisons les options -f et -d.

  FIX for iTunes a une signature non valide sur Windows 10

sort -f -d the-jumblies.txt -o sorted.txt dans une fenêtre de terminal.

Maintenant, nous obtenons les résultats attendus.

Ne considérez que les espaces et les caractères alphanumériques

Pour faire ignorer tout ce qui n’est pas Caractère alphanumérique ou un espace, utilisez l’option -d (alphanumérique).

Voyons s’il y a des mots qui commencent par «Oh».

look -f oh the-jumblies.txt

regardez -f oh the-jumblies.txt dans une fenêtre de terminal.

Aucun résultat n’est renvoyé par look.

Essayons à nouveau et disons à look d’ignorer autre chose que les caractères alphanumériques et les espaces. Cela signifie que les caractères et les symboles, tels que la ponctuation, seront ignorés.

look -f -d oh the-jumblies.txt

regardez -f -d oh the-jumblies.txt dans une fenêtre de terminal.

Cette fois, nous obtenons un résultat. Nous n’avons pas trouvé cette ligne auparavant car les guillemets et le point d’exclamation ont confondu la recherche.

Sortie de

Spécification du caractère de fin

Vous pouvez dire à look d’utiliser un caractère spécifique comme caractère de fin. Habituellement, les espaces et la fin des lignes sont utilisés comme caractère de fin.

L’option -t (caractère de fin) nous permet de spécifier le caractère que nous aimerions utiliser. Dans cet exemple, nous allons utiliser le caractère apostrophe. Nous devons le citer avec une barre oblique inverse pour que le regard sache que nous n’ouvrons pas de chaîne.

Nous citons également le terme de recherche car il comprend un espace. Nous recherchons deux mots.

look -f -t ' "they call" the-jumblies.txt

regarder -f -t '

Les résultats correspondent au terme de recherche, terminé par l’apostrophe que nous avons utilisée comme caractère de fin.

Sortie de

Utiliser look sans fichier

Si vous ne fournissez pas de nom de fichier sur la ligne de commande, regardez utilise le fichier de mots.

La commande:

donne ces résultats:

Ce sont tous les mots du fichier qui commencent par le mot «cercle».

cherchez pas plus loin

C’est tout ce qu’il y a à regarder.

C’est assez facile une fois que vous savez qu’il existe différents comportements dans différentes distributions Linux, et que vous avez déterminé si votre version utilise une recherche binaire ou linéaire.