Unix / Linux Comment utiliser les commandes grep

grep est l’un des plus importants utilitaires de ligne de commande Unix / Linux. Ce tutoriel présentera différentes manières d'utiliser l'utilitaire de recherche de texte.

grep signifie “recherche globale dans les expressions régulières et les impressions”.

grep affiche les lignes d'un fichier correspondant à un modèle STDIN (entrée par le clavier). Les motifs fournis en entrée par grep sont des expressions régulières qui permettent de rechercher facilement le contenu du fichier.

Syntaxe: grep [OPTIONS] PATTERN [FILE]

Commande 1.1

$ grep 'root' / etc / passwd

La commande ci-dessus recherchera les contenus ayant "root" écrit dans un fichier "/ etc / passwd". Si un fichier contient des chaînes telles que 'rootwr', 'ishroot', il correspond à la racine dans 'rootwr' et 'ishroot' et affiche le résultat. Si vous voulez trouver le mot exact 'root' en utilisant grep, suivez la commande ci-dessous.

Commande 1.2

$ grep -w 'root' / etc / passwd

Utilisez -w pour faire correspondre le mot exact.

La commande ci-dessus correspondra au mot -w exact 'root'. Désormais, si un fichier contient des chaînes telles que 'rootwr', 'root', 'ishroot', cette commande s'affiche uniquement pour le motif 'root' et non pour 'rootwr' et 'ishroot' qui étaient affichés dans la première commande 1.1.

Commande 1.3

$ grep -i 'bug' / etc / passwd

Utilisez -i pour effectuer une recherche insensible à la casse.

Si vous recherchez avec cette commande 'grep' bug '/ etc / passwd',
Cela correspond uniquement au modèle de chaîne 'bug' qui n'est pas un modèle ne respectant pas la casse. Si / etc / passwd contient 'Bug', 'BuG', 'bGG', cette commande 'grep' bug '/ etc / passwd' affichera des résultats vierges.

Donc, pour effectuer une recherche sans distinction de casse et pour correspondre au modèle, vous devez utiliser '-i' afin qu'il corresponde à tous les modèles d'une chaîne donnée.

par exemple $ grep -i 'bug' / etc / passwd

correspondra à des modèles pour:

'punaise'
'Punaise'
'punaise'
'punaise'
'PUNAISE'
'Punaise'
'punaise'

Tous les modèles qui évalue de 'bug'.

Commande 1.4

$ grep -n 'root' / etc / passwd

Utilisez -n pour imprimer les numéros de ligne des correspondances

L'option now -n affiche les numéros de ligne avec des lignes contenant le modèle d'entrée. La commande ci-dessus affiche les numéros de ligne contenant la chaîne 'root'.

Si vous voulez faire correspondre plusieurs mots, vous pouvez le faire en utilisant la commande suivante:

Commande 1.5

$ grep -E -n 'sauvegarde | racine' / etc / passwd

La commande ci-dessus recherchera les mots «sauvegarde» et «racine» à la fois et affichera les numéros de ligne avec les lignes contenant les deux mots.

Où:

Utilisez -E pour les expressions régulières étendues

plus d'aide à ce sujet peut être trouvée en utilisant la commande 'man grep'.

Commande 1.6

$ grep -v 'root' / etc / passwd

Utilisez -v pour imprimer des lignes ne contenant pas de motif.
La commande ci-dessus affiche les lignes qui ne contiennent pas le motif 'root'.

Commande 1.7

$ grep -r 'root' / etc /

Utilisez -r pour effectuer une recherche récursive dans un répertoire.
Cette commande va rechercher et afficher le motif 'root' dans tous les fichiers du répertoire '/ etc /'.

Commande 1.8

$ grep -c 'bash' / etc / passwd

Utilisez '-c' pour renvoyer un nombre de lignes avec le motif correspondant.

Cette commande affiche le nombre de lignes contenant le motif 'bash' dans un fichier / etc / passwd.

Commande 1.9

$ grep -r -l 'root' / etc

Utilisez '-l' pour renvoyer les noms des fichiers comportant au moins une ligne contenant le motif.

La commande ci-dessus affiche les noms des fichiers contenant le motif 'root',
dans le répertoire / etc. Remarque importante: vous devez utiliser l'option '-r' (commande 1.7) pour parcourir le répertoire / etc de manière récursive.