Dans l'article suivant, nous verrons quelques outils de ligne de commande utilisés pour rechercher des chaînes ou des modèles correspondants dans des fichiers texte. Ces outils sont généralement utilisés en conjonction avec des expressions régulières, abrégées en REGEX, qui sont des chaînes uniques pour décrire un modèle de recherche.
Les expressions régulières sont des modèles utilisés pour rechercher une certaine combinaison de caractères dans une chaîne de texte. Les expressions régulières offrent un moyen très flexible de rechercher ou de reconnaître des chaînes de texte. Bien que dans les lignes suivantes, nous ne verrons pas d'expressions régulières, nous utiliserons des modèles ou des chaînes.
Rechercher des chaînes ou des modèles à partir du terminal
Commande Grep
Grep est un acronyme pour Impression d'expression régulière globale. Il s'agit d'un outil de ligne de commande puissant qui est utile lors de la recherche d'une chaîne ou d'un modèle spécifique dans un fichier. Avec grep nous pourrons utiliser un large éventail de fonctions, comme celles qu'un collègue nous a expliqué dans ce blog il y a quelque temps.
La syntaxe d'utilisation de la commande grep est assez simple:
grep PATRON [RUTA AL ARCHIVO]
Par exemple, pour rechercher la chaîne 'Ubuntu'dans un fichier que dans cet exemple nous appellerons text.txt, sans prendre en compte la distinction entre majuscules et minuscules, dans un terminal (Ctrl + Alt + T) nous n'aurons qu'à exécuter la commande:
grep -i Ubuntu texto.txt
Commande sed
La soif est courte pour Éditeur de flux. C'est un autre outil utile pour le terminal avec lequel nous pouvons manipuler du texte dans un fichier. Sed recherche, filtre et remplace les chaînes dans un fichier donné.
La commande sed par défaut imprime la sortie dans SORTIE STD (Sortie standard). Cela implique que le résultat de l'exécution est imprimé sur le terminal au lieu d'être enregistré dans un fichier.
La commande Sed peut être utilisée comme suit:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
Par exemple, pour remplacer toutes les occurrences de 'Linux/Unix'dans un texte de'Linux', la commande à utiliser serait la suivante:
sed 's/Linux/GnuLinux/g' texto.txt
Si ce que nous cherchons est rediriger la sortie vers un fichier au lieu de l'imprimer vers le terminal, nous allons utiliser le signe de redirection comme suit:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
La sortie de la commande est enregistrée dans le fichier output.txt au lieu d'être imprimé à l'écran.
Pour voir plus d'options, vous pouvez consulter les pages de manuel:
man sed
ack
Ack est un outil de ligne de commande rapide écrit en Perl. Il est considéré comme un remplacement convivial de l'utilitaire grep, qui génère également des résultats d'une manière visuellement attrayante.
Pour installer ack dans notre système, nous devrons exécuter dans le terminal (Ctrl + Alt + T):
sudo apt install ack
La commande Ack recherche dans le fichier ou le répertoire les lignes contenant la correspondance avec les critères de recherche. Mettez ensuite en surbrillance la chaîne correspondante. Cet outil a la capacité de distinguer les fichiers en fonction de leurs extensions.
La syntaxe de la commande Ack serait quelque chose comme la suivante
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Par exemple, pour rechercher le terme Linux/Unix dans un fichier, il faudrait exécuter:
ack Linux texto.txt
L'outil de recherche est assez intelligent et si l'utilisateur ne fournit aucun fichier ou répertoire, il recherche le répertoire courant et les sous-répertoires pour le modèle de recherche.
Dans l'exemple suivant, aucun fichier ou répertoire n'est fourni. Ack détecte automatiquement le fichier disponible dans le répertoire et recherche le modèle correspondant:
ack Linux
ripgrep
ripgrep est un utilitaire multiplateforme pour rechercher des modèles d'expressions régulières. Il est plus rapide que tous les outils de recherche mentionnés ci-dessus, et il recherche les répertoires de manière récursive pour trouver des modèles correspondants. Il vous permet également de rechercher des types de fichiers spécifiques. Par défaut, ripgrep ignorera les binaires et les fichiers / répertoires cachés.
Pour installer ripgrep sur le système, il vous suffit d'exécuter la commande suivante dans le terminal (Ctrl + Alt + T):
sudo apt install ripgrep
La syntaxe d'utilisation de ripgrep est assez simple:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Si nous voulions chercher la chaîne 'Linux/Unix'dans les fichiers situés dans le répertoire courant, nous n'aurons qu'à exécuter la commande:
rg Linux
Pour voir plus d'options, les utilisateurs peuvent utiliser pages de manuel:
man rg
Chercheur d'argent
Pour installer cet outilDans Ubuntu, nous n'aurons qu'à ouvrir un terminal (Ctrl + Alt + T) et écrire la commande:
sudo apt install silversearcher-ag
Silver Searcher est un outil de recherche open source multiplateforme similaire à ack mais mettant l'accent sur la vitesse. Il permet de trouver facilement une chaîne spécifique dans les fichiers dans les plus brefs délais. La syntaxe à utiliser serait:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
Par exemple, pour rechercher 'Linux/Unix' dans le fichier text.txt, il faudrait écrire dans le terminal (Ctrl + Alt + T):
ag Linux texto.txt
Pour voir plus d'options, nous pouvons consulter le pages de manuel:
man ag
Ce ne sont là que quelques-uns des outils de ligne de commande les plus couramment utilisés pour rechercher, filtrer et manipuler du texte sous Linux.