Comme le nom de grep l'indique, le motif à rechercher est décrit à l'aide d'une expression régulière. L'expression régulière est un type spécial de chaîne qui décrit un modèle à rechercher, localiser et gérer. Pour en savoir plus sur grep et l'expression régulière, consultez l'utilisation de grep et egrep avec une expression régulière.
À des fins de démonstration, récupérez un exemple de fichier texte. Dans cet exemple, téléchargez la licence publique générale GNU v3.0 fichier texte.
Recherche de base
La manière fondamentale d'utiliser grep est de rechercher une chaîne de base.
Jetez un œil à la commande grep suivante. Il recherchera le mot "GNU" dans le fichier texte.
$ grep "GNU" gpl-3.0.SMS
Pour afficher le numéro de ligne, utilisez le drapeau "-n".
$ grep -n "GNU" gpl-3.0.SMS
Pour effectuer une recherche insensible à la casse à l'aide de grep, utilisez l'indicateur "-i".
$ grep -ni "gnu" gpl-3.0.SMS
Vous ne voudrez peut-être pas voir les correspondances de recherche, mais uniquement le nom du fichier où la correspondance s'est produite dans certaines situations. Pour imprimer uniquement le nom du fichier, utilisez le drapeau "-l". Ici, l'astérisque indique d'utiliser tous les fichiers texte du répertoire courant.
$ grep -l "gnu" *
Nous pouvons également diriger la sortie d'autres commandes vers grep.
$ chat gpl-3.0.txt | grep -n "GNU"
Expression régulière
Regex offre un moyen intelligent d'affiner la recherche. Il a ses propres règles. Cependant, différentes applications et langages de programmation implémentent différemment l'expression régulière. Voici quelques exemples que vous pouvez utiliser avec grep.
Pour définir que la chaîne doit être trouvée au début d'une ligne, utilisez le symbole caret (^).
$ grep -n "^GNU" gpl-3.0.SMS
Pour définir que la chaîne se trouve en fin de ligne, utilisez le signe dollar ($).
$ grep -n "à$" gpl-3.0.SMS
Pour décrire qu'il peut y avoir n'importe quel caractère à un certain emplacement du motif, utilisez le caractère point (.). Par exemple, l'expression "G.U" est valide s'il y a un caractère entre "G" et "U".
$ grep -n "G.U" gpl-3.0.SMS
Pour décrire qu'il peut y avoir un sous-ensemble de caractères à un emplacement particulier du motif, utilisez les crochets ([]). Par exemple, l'expression "t[wo]o" indique que la correspondance n'est valide que pour "two" et "too".
$ grep -n "t[wo]o" gpl-3.0.SMS
Expression régulière étendue
Comme son nom l'indique, une expression régulière étendue peut faire des choses plus complexes que les expressions régulières de base. Pour utiliser une expression régulière étendue avec grep, vous devez utiliser le drapeau "-E".
$ grep -nE Pour rechercher deux chaînes différentes, utilisez les opérateurs OU (|).
$ grep -nE "GNU|Général|Licence" gpl-3.0.SMS
Recherche de texte dans des fichiers
Vient maintenant la partie principale. Au lieu de dire manuellement à grep le fichier sur lequel effectuer la recherche, grep peut le faire automatiquement. Dans la commande suivante, grep utilisera tous les fichiers texte disponibles dans le répertoire actuel pour rechercher le modèle.
$ grep * Si vous souhaitez que grep effectue la recherche sur un autre répertoire, vous devez alors spécifier l'emplacement.
$ grep
S'il y a des dossiers, grep ne les explore pas par défaut. Pour dire à grep de rechercher de manière récursive, utilisez le drapeau "-R".
$ grep -nR
Interface graphique de Grep
Si vous préférez travailler avec l'interface graphique mais que vous souhaitez toujours profiter des fonctionnalités de grep, consultez searchmonkey. C'est une solution frontale pour grep. Le package est disponible sur presque toutes les principales distributions Linux.
Rechercher du texte dans des fichiers à l'aide de nano
GNU Nano est un éditeur de texte simple et puissant fourni avec n'importe quelle distribution Linux. Il a des fonctionnalités intégrées pour rechercher du texte dans un fichier texte.
Notez que dans cette méthode, vous devez ouvrir le fichier texte et rechercher manuellement. C'est faisable s'il n'y a qu'une poignée de fichiers texte avec lesquels travailler. S'il y en a plus, alors l'utilisation de grep est le choix le plus optimal.
Ouvrez le fichier texte dans nano.
$ nano
Pour rechercher une correspondance de chaîne, appuyez sur "Ctrl + W". Après avoir tapé la chaîne à rechercher, appuyez sur "Entrée".
Rechercher du texte dans des fichiers à l'aide de Vim
Vim est un éditeur de texte bien connu et réputé. C'est l'équivalent en ligne de commande d'un éditeur de texte moderne. Vim est livré avec de nombreuses fonctionnalités avancées telles que des plugins, des macros, l'auto-complétion, des filtres, etc.
Semblable à nano, Vim fonctionne avec un seul fichier à la fois. Si vous avez plusieurs fichiers texte, alors l'utilisation de grep est le moyen le plus optimal d'aller.
Pour rechercher dans un fichier texte, ouvrez-le d'abord dans Vim.
$ vim
Entrez la commande Vim suivante et appuyez sur "Entrée".
$ :/
Rechercher du texte dans des fichiers à l'aide de l'éditeur de texte GNOME
L'éditeur de texte GNOME est l'éditeur de texte fourni avec le bureau GNOME. C'est un éditeur de texte simpliste avec toutes les fonctionnalités de base que vous attendez. C'est une bonne alternative aux éditeurs de texte en ligne de commande.
Semblable à nano et vim, la même prudence s'applique à cette méthode. Si le nombre de fichiers texte est important, vous feriez mieux de vous en tenir à grep.
Ouvrez le fichier texte dans l'éditeur de texte. Appuyez sur "Ctrl + F" pour faire apparaître la barre de recherche.
Rechercher du texte dans des fichiers à l'aide de VS Code
Visual Studio Code est un éditeur de texte puissant avec des tonnes de fonctionnalités. Il est optimisé pour que les programmeurs soient utilisés comme s'il s'agissait d'un IDE à part entière. Il est disponible sur presque toutes les principales distributions Linux.
Installer le package d'accrochage Visual Studio Code.
$ sudo snap install code --classic
Ouvrez le fichier texte dans VS Code. Appuyez sur "Ctrl + F" pour lancer la recherche.
Dernières pensées
Il existe de nombreuses façons de rechercher du texte dans des fichiers. C'est une tâche facile à maîtriser. Il est fortement recommandé de maîtriser la commande grep car elle offre le plus de valeur en termes d'efficacité et de facilité d'utilisation.
Si vous préférez l'interface graphique, vous avez le choix entre de nombreux éditeurs de texte. Tout éditeur de texte moderne fournira l'option de recherche de texte.
Bon calcul!