Recherche de site Web

6 meilleurs outils CLI pour rechercher des données en texte brut à l'aide d'expressions régulières


Ce guide présente certains des meilleurs 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 avec des expressions régulières – abrégées en REGEX – qui sont des chaînes uniques permettant de décrire un modèle de recherche.

Sans plus tarder, plongeons-nous.

1. Commande Grep

En premier lieu se trouve l'utilitaire grep - est un acronyme pour Global Regular Expression Print, est un puissant outil de ligne de commande qui s'avère pratique lors de la recherche d'une chaîne spécifique ou d'un modèle dans un fichier. .

Grep est livré par défaut avec les distributions Linux modernes et vous offre la flexibilité de renvoyer divers résultats de recherche. Avec grep, vous pouvez effectuer une vaste gamme de fonctions telles que :

  • Recherchez des chaînes ou des modèles correspondants dans un fichier.
  • Recherchez des chaînes ou des modèles correspondants dans les fichiers Gzippés.
  • Comptez le nombre de correspondances de chaînes.
  • Imprimez les numéros de ligne qui contiennent la chaîne ou le modèle.
  • Recherchez de manière récursive la chaîne dans les répertoires.
  • Effectuez une recherche inversée (c'est-à-dire afficher les résultats des chaînes ne correspondant pas aux critères de recherche).
  • Ignorez le respect de la casse lors de la recherche de chaînes.

La syntaxe d'utilisation de la commande grep est assez simple :

grep pattern FILE

Par exemple, pour rechercher la chaîne « Linux » dans un fichier, par exemple hello.txt tout en ignorant le respect de la casse, exécutez la commande :

grep -i Linux hello.txt

Pour obtenir plus d'options que vous pouvez utiliser avec grep, lisez simplement notre article qui donne des exemples de commandes grep plus avancées.

2. Commande sed

Sed – abréviation de Stream Editor – est un autre outil de ligne de commande utile pour manipuler le texte dans un fichier texte. Sed recherche, filtre et remplace les chaînes dans un fichier donné de manière non interactive.

Par défaut, la commande sed imprime la sortie sur STDOUT (Standard Out), ce qui implique que le résultat de l'exécution est imprimé sur le terminal au lieu de étant enregistré dans un fichier.

La commande Sed est invoquée comme suit :

sed -OPTIONS command [ file to be edited ]

Par exemple, pour remplacer toutes les instances de « Unix » par « Linux », appelez la commande :

sed 's/Unix/Linux' hello.txt

Si vous souhaitez rediriger la sortie au lieu de l'imprimer sur le terminal, utilisez le signe de redirection ( > ) comme indiqué.

sed 's/Unix/Linux' hello.txt > output.txt

Le résultat de la commande est enregistré dans le fichier output.txt au lieu d'être imprimé à l'écran.

Pour découvrir plus d’options pouvant être utilisées, consultez à nouveau les pages de manuel.

man sed

3. Commande Acquitter

Ack est un outil de ligne de commande rapide et portable écrit en Perl. Ack est considéré comme un remplacement convivial de l'utilitaire grep et produit des résultats d'une manière visuellement attrayante.

La commande Ack recherche dans le fichier ou le répertoire les lignes qui contiennent la correspondance pour les critères de recherche. Il met ensuite en évidence la chaîne correspondante dans les lignes.
Ack a la capacité de distinguer les fichiers en fonction de leurs extensions de fichier et, dans une certaine mesure, du contenu des fichiers.

Syntaxe de la commande Ack :

ack [options] PATTERN [FILE...]
ack -f [options] [DIRECTORY...]

Par exemple, pour rechercher le terme de recherche Linux, exécutez :

ack Linux hello.txt

L'outil de recherche est assez intelligent et si aucun fichier ou répertoire n'est fourni par l'utilisateur, il recherche le modèle de recherche dans le répertoire et les sous-répertoires actuels.

Dans l'exemple ci-dessous, aucun fichier ou répertoire n'a été fourni, mais ack a automatiquement détecté le fichier disponible et recherché le modèle correspondant fourni.

ack Linux

Pour installer ack sur votre système, exécutez la commande :

sudo apt install ack-grep    [On Debian/Ubuntu]
sudo dnf install ack-grep    [On CentOS/RHEL]

4. Commande Awk

Awk est un langage de script à part entière mais également un outil de traitement de texte et de manipulation de données. Il recherche les fichiers ou les programmes contenant le modèle de recherche. Lorsque la chaîne ou le modèle est trouvé, awk agit sur la correspondance ou la ligne et imprime les résultats sur STDOUT.

Le modèle AWK est entouré d'accolades tandis que l'ensemble du programme est entouré de guillemets simples.

Prenons l'exemple le plus simple. Supposons que vous imprimez la date de votre système comme indiqué :

date

Supposons que vous souhaitiez uniquement imprimer la première valeur, qui correspond au jour de la semaine. Dans ce cas, dirigez la sortie vers awk comme indiqué :

date | awk '{print $1}'

Pour afficher les valeurs suivantes, séparez-les par une virgule comme indiqué :

date | awk '{print $1,$2}'

La commande ci-dessus affichera le jour de la semaine et la date du mois.

Pour obtenir plus d'options que vous pouvez utiliser avec awk, lisez simplement notre série de commandes awk.

5. Chercheur d'argent

Le Silver Searcher est un outil de recherche de code multiplateforme et open source similaire à ack mais en mettant l'accent sur la vitesse. Cela vous permet de rechercher facilement une chaîne spécifique dans les fichiers dans les plus brefs délais :

Syntaxe :

ag OPTIONS search_pattern /path/to/file

Par exemple, pour rechercher la chaîne « Linux » dans un fichier hello.txt, appelez la commande :

ag Linux hello.txt

Pour des options supplémentaires, visitez les pages de manuel :

man ag

6. Ripgrep

Enfin, nous avons l'outil de ligne de commande ripgrep. Ripgrep est un utilitaire multiplateforme permettant de rechercher des modèles d'expressions régulières. Il est beaucoup plus rapide que tous les outils de recherche mentionnés précédemment et recherche de manière récursive dans les répertoires les modèles correspondants. En termes de vitesse et de performances, aucun autre outil ne se démarque que Ripgrep.

Par défaut, ripgrep ignorera les fichiers binaires/fichiers et répertoires cachés. Sachez également que par défaut, il ne recherchera pas les fichiers ignorés par les fichiers .gitignore/.ignore/.rgignore.

Ripgrep vous permet également de rechercher des types de fichiers spécifiques. Par exemple, pour limiter votre recherche aux fichiers Javascript, exécutez :

rg -Tsj

La syntaxe d'utilisation de ripgrep est assez simple :

rg [OPTIONS] PATTERN [PATH...]

Par exemple. Pour rechercher des instances de la chaîne 'Linux' dans les fichiers situés dans le répertoire courant, exécutez la commande :

rg Linux

Pour installer ripgrep sur votre système, exécutez les commandes suivantes :

sudo apt install ripgrep      [On Debian/Ubuntu]
sudo pacman -S ripgrep        [On Arch Linux]
sudo zypper install ripgrep   [On OpenSuse]
sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

Pour des options supplémentaires, visitez les pages de manuel :

man rg

Ce sont quelques-uns des outils de ligne de commande les plus utilisés pour rechercher, filtrer et manipuler du texte sous Linux. Si vous pensez avoir d'autres outils que nous avons laissés de côté, faites-le-nous savoir dans la section commentaires.