10 exemples pratiques de la commande Linux Grep

La commande grep permet d'accéder à l'utilitaire grep, un puissant outil de traitement de fichiers utilisé pour rechercher des modèles dans des fichiers texte. Il a de nombreux cas d'utilisation pratiques et est certainement l'une des commandes Linux les plus utilisées. Ce guide illustre quelques commandes grep Linux simples mais utiles qui ont des utilisations dans le monde réel.

Exemple de fichier pour la démonstration

Nous avons créé un fichier de référence pour aider les lecteurs à mieux comprendre grep. Vous pouvez créer une copie de ce fichier en exécutant la commande shell suivante dans votre terminal.

 cat <<END >> test-file
This is a simple text file that contains
multiple strings as well as some telephone numbers
(555) 555-1234 (567) 666-2345
and email plus web addresses
[email protected]
https://google.com
ftp://mywebserver.com
END

1. Rechercher du texte dans des fichiers

Pour rechercher un modèle de texte dans un fichier, exécutez simplement grep suivi du nom du modèle. Spécifiez également le nom du fichier contenant le texte.

 grep "email" test-file

Cette commande affichera la ligne dans notre fichier de test qui contient le mot email . Vous pouvez également rechercher le même texte dans plusieurs fichiers à l'aide de grep.

 grep "example" /usr/share/dict/american-english /usr/share/dict/british-english

La commande ci-dessus affiche toutes les instances du mot exemple dans les fichiers de dictionnaire américain-anglais et britannique-anglais .

2. Rechercher des mots correspondants exacts

La commande Linux grep illustrée dans l'exemple précédent répertorie également les lignes avec des correspondances partielles. Utilisez la commande ci-dessous si vous n'avez besoin que des occurrences exactes d'un mot.

 grep -w "string" test-file

L'option -w ou –word-regexp de grep limite la sortie aux correspondances exactes uniquement. Grep se compose de quelques indicateurs supplémentaires qui peuvent également être utilisés avec la commande par défaut.

En relation: Comment Grep a-t-il obtenu son nom? L'histoire derrière la création de Grep

3. Ignorer les distinctions de cas

Par défaut, grep recherche les modèles en respectant la casse. Cependant, vous pouvez désactiver cette option si vous ne savez pas dans quel cas se trouve le modèle à l'avance.

 grep -i "this" test-file

Utilisez l'option -i ou –ignore-case pour désactiver la sensibilité à la casse.

4. Comptez le nombre de motifs

L'indicateur -c signifie count . Il affiche le nombre de correspondances trouvées pour un modèle particulier. Les administrateurs peuvent l'utiliser pour récupérer des informations spécifiques sur le système.

Vous pouvez diriger la commande ps avec grep pour compter les processus appartenant à l'utilisateur actuel.

 ps -ef | grep -c $USER

La commande suivante affiche le nombre de fichiers MP3 présents dans un répertoire.

 ls ~/Music | grep -c .mp3

5. Afficher les numéros de ligne contenant des correspondances

Vous souhaiterez peut-être rechercher les numéros de ligne contenant une certaine correspondance. Utilisez l'option -n ou –line-number de grep pour y parvenir.

 cat /etc/passwd | grep -n rubaiat

Cette option est particulièrement utile pour le débogage des codes sources et le dépannage des fichiers journaux. Pour afficher tous les numéros de lignes dans le ~ / .vimrc qui sont utilisés pour configurer l'éditeur de texte Vim :

 grep -n "set" ~/.vimrc

6. Rechercher des noms de fichiers à l'aide d'extensions

Pour obtenir une liste de tous les fichiers MP3 présents dans le répertoire ~ / Music :

 ls ~/Music/ | grep ".mp3"

Vous pouvez remplacer .mp3 par toute autre extension pour localiser des fichiers spécifiques. La commande suivante répertorie tous les fichiers php présents dans le répertoire de travail actuel.

 ls | grep ".php"

7. Rechercher des modèles dans des fichiers compressés

La commande Linux grep peut également trouver des modèles dans des fichiers compressés. Vous devrez cependant utiliser la commande zgrep pour ce faire. Tout d'abord, créez une archive compressée de notre fichier de test en tapant:

 gzip test-file

Maintenant, vous pouvez rechercher du texte ou d'autres modèles dans l'archive résultante.

 zgrep email test-file.gz

8. Rechercher des adresses e-mail

Les administrateurs peuvent également répertorier les adresses e-mail à partir de fichiers texte à l'aide de la commande Linux grep. L'exemple suivant effectue cela en recherchant un modèle d'expression régulière.

 grep '^[a-zA-Z0-9][email protected][a-zA-Z0-9]+.[az]{2,}' test-file

Vous pouvez trouver des expressions régulières pour effectuer des tâches similaires ou vous pouvez les créer vous-même si vous savez comment elles fonctionnent.

9. Rechercher des numéros de téléphone à l'aide de Grep

Vous pouvez utiliser des expressions régulières grep pour filtrer les numéros de téléphone d'un fichier texte. Notez que vous devrez modifier le modèle pour qu'il corresponde au type de numéros de téléphone dont vous avez besoin.

 grep '(([0-9]{3})|[0-9]{3})[ -]?[0-9]{3}[ -]?[0-9]{4}' test-file

La commande susmentionnée filtre les numéros de téléphone américains à dix chiffres.

10. Rechercher des URL à partir de fichiers sources

Nous pouvons tirer parti de la puissance de grep pour répertorier les URL trouvées dans les fichiers texte. La commande ci-dessous imprime toutes les URL présentes dans le fichier de test .

 grep -E "^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})" test-file

Nous utilisons à nouveau l'option -E pour les expressions régulières étendues. Vous pouvez également utiliser la commande egrep pour éviter d'ajouter cela.

 egrep "^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})" test-file

Maîtriser la commande Linux Grep

Nous avons présenté plusieurs exemples utiles de la commande Linux grep pour résoudre les problèmes du monde réel. Bien que ces exemples illustrent la puissance de grep pour le traitement de texte, vous devrez maîtriser les expressions régulières si vous voulez être super productif avec grep.

Parfois, les utilisateurs Linux se heurtent à certaines situations où ils ne peuvent pas se souvenir des différentes options liées à une commande. Espérons que le système d'exploitation Linux vous offre des moyens d'obtenir une aide en ligne de commande pour presque tous les utilitaires système.