GNU/Linux >> Tutoriels Linux >  >> Linux

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

Ce guide fait le tour de 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 pour décrire un modèle de recherche.

Sans plus tarder, plongeons dedans.

1. Commande Grep

En premier lieu vient l'outil 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 donne la possibilité de renvoyer divers résultats de recherche. Avec grep, vous pouvez effectuer une vaste gamme de fonctions telles que :

  • Rechercher des chaînes ou des modèles correspondants dans un fichier.
  • Recherchez des chaînes ou des modèles correspondants dans des fichiers compressés
  • Compter le nombre de correspondances de chaînes.
  • Imprimez les numéros de ligne contenant la chaîne ou le motif.
  • Rechercher récursivement la chaîne dans les répertoires.
  • Effectuer une recherche inversée (c'est-à-dire afficher les résultats des chaînes ne correspondant pas aux critères de recherche).
  • Ignorez la sensibilité à la casse lors de la recherche de chaînes.

La syntaxe pour utiliser le grep commande est assez simple :

$ grep pattern FILE

Par exemple, pour rechercher la chaîne "Linux ' dans un fichier, par exemple, hello.txt tout en ignorant la sensibilité à 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 du 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, sed la commande imprime la sortie sur STDOUT (Sortie standard ), ce qui 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 est invoquée comme suit :

$ sed -OPTIONS command [ file to be edited ]

Par exemple, pour remplacer toutes les instances de 'Unix ' avec 'Linux ', invoquez 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

La sortie de la commande est enregistrée dans output.txt fichier 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. Acquitter la commande

Accepter est un outil de ligne de commande rapide et portable écrit en Perl. Accepter est considéré comme un remplaçant amical de l'utilitaire grep et produit des résultats d'une manière visuellement attrayante.

Accepter La commande recherche dans le fichier ou le répertoire les lignes qui contiennent la correspondance pour les critères de recherche. Il met ensuite en surbrillance la chaîne correspondante dans les lignes.
Acquittement 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 d'accusé de réception :

$ 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 répertoire et les sous-répertoires actuels pour le modèle de recherche.

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. Awk Commande

Mauvais est un langage de script à part entière et également un outil de traitement de texte et de manipulation de données. Il recherche les fichiers ou les programmes qui contiennent le modèle de recherche. Lorsque la chaîne ou le modèle est trouvé, awk prend des mesures sur le match ou la ligne et imprime les résultats sur STDOUT .

Le AWK pattern est entouré d'accolades tandis que le programme entier est entouré de guillemets simples.

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

$ date

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

$ date | awk '{print $1}'

Pour afficher les valeurs suivantes, séparez-les à l'aide d'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 chercheur d'argent 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, consultez les pages de manuel :

$ man ag

6. Ripgrep

Enfin, nous avons l'outil de ligne de commande ripgrep. Ripgrep est un utilitaire multiplateforme pour rechercher des modèles de regex. 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 rapidité 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 .gitignore/.ignore/.rgignore fichiers.

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

$ rg -Tsj

La syntaxe pour utiliser ripgrep est assez simple :

$ rg [OPTIONS] PATTERN [PATH...]

Par example. 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, consultez les pages de manuel :

$ man rg

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


Linux
  1. Comment convertir un fichier PPK en PEM à l'aide de la commande

  2. Meilleurs outils pour récupérer des données [Windows, Linux, DOS, MacOS X]

  3. Meilleur moyen de rechercher dans l'historique de Shell ?

  4. Enregistrer le fichier après avoir utilisé la commande Sed ?

  5. Utilisation de la commande ripgrep (rg) sous Linux

Comment créer un fichier sous Linux à l'aide d'un terminal/ligne de commande

Comment créer un lien symbolique sous Linux à l'aide de la commande Ln

Utilisation de la commande Cat sous Linux avec des exemples

Les 6 meilleures façons d'afficher des fichiers sous Linux

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Les 15 meilleurs outils de récupération de données Linux :le choix des professionnels