Comment rechercher un texte spécifique à l'aide de grep
sur Linux. grep
est une forme courte pour Global Regular Expression Print. C'est l'un des outils les plus utiles sous Linux pour rechercher une chaîne spécifique sur des fichiers de manière récursive ou sur un seul fichier.
Dans ce guide, vous allez apprendre à utiliser le grep
commande pour divers cas d'utilisation sur votre machine Linux.
Cas d'utilisation
- Recherche normale sur un fichier.
- Recherche récursive dans les répertoires.
- Exclure les fichiers.
- Y compris les fichiers.
- Recherche d'expression régulière.
- Utilisation de grep avec d'autres commandes pour filtrer la sortie.
syntaxe de la commande grep
grep [OPTIONS] STRING [FILE(S)]
OPTIONS sont facultatifs et incluent diverses méthodes pour effectuer la recherche.
CHAÎNE est requis qui utilise la chaîne particulière à rechercher.
FICHIER(S) Vous pouvez ajouter des fichiers ou un répertoire pour effectuer la recherche ou simplement le .
pour chercher dans le répertoire courant.
Par défaut, grep est sensible à la casse. Si vous voulez ignorer la casse, vous pouvez utiliser le -i
option qui ignore la sensibilité à la casse et affiche le contenu en minuscules et majuscules.
Recherche normale dans le fichier
C'est l'utilisation la plus basique de la commande grep. Utilisez simplement la commande avec la chaîne que vous devez rechercher et le nom du fichier.
grep string filename
Cette commande recherchera le texte donné dans le fichier fourni et affichera les résultats.
Recherche récursive incluant les répertoires
Pour rechercher dans tous les fichiers qui se trouvent dans le répertoire, vous devez utiliser le -r
option pour effectuer une recherche récursive dans le dossier donné.
Le -r
ne suivez pas les liens symboliques. Si vous souhaitez rechercher des liens symboliques, vous devez utiliser le -R
majuscule option au lieu de petit -r
option.
grep -r string folder-name #Include Symbolic link files grep -R string folder-name
Exclure des fichiers lors de l'utilisation de grep
Vous pouvez utiliser le --exclude
option pour exclure des répertoires, des fichiers spécifiques ou des fichiers avec des extensions spécifiques.
grep -r string --exclude=filename --exclude=*.png --exclude=folder/* folder-name
Inclure des fichiers lors de l'utilisation de grep
Vous pouvez utiliser le --include
option pour inclure uniquement les répertoires spécifiques, les fichiers spécifiques ou les fichiers avec des extensions spécifiques.
grep -r string --include=filename --include=*.php --include=folder/* folder-name
Recherche d'expression régulière
Utilisez le ^
(caret) pour correspondre à l'expression au début d'une ligne. Dans l'exemple suivant, le texte string
ne correspondra que s'il se produit au tout début d'une ligne.
grep "^string" filename
Utilisez le $
(dollar) pour correspondre à l'expression à la fin d'une ligne. Dans l'exemple suivant, le texte string
ne correspondra que s'il se produit à la toute fin d'une ligne.
grep "string$" filename
Utilisez le .
(point) pour correspondre à n'importe quel caractère unique. Par exemple, pour faire correspondre tout ce qui commence par string1
puis comporte deux caractères et se termine par le texte string2
, vous pouvez utiliser le modèle suivant.
grep "string1..string2" filename
Utilisez [ ]
(crochets) pour correspondre à n'importe quel caractère unique entre crochets. Par exemple, recherchez les lignes qui contiennent boat
ou "coat
, vous pouvez utiliser le modèle suivant.
grep "[bc]oat" filename
Pour échapper à la signification spéciale du caractère suivant, utilisez le \
(barre oblique inverse).
Utiliser grep avec d'autres commandes
Vous pouvez également utiliser grep pour filtrer la sortie fournie à l'aide d'une autre commande.
ps -ef | grep mysql | grep -v grep
Cela filtrera la sortie pour afficher uniquement ceux qui sont avec mysql
.
Conclusion
Vous avez maintenant appris à effectuer une recherche à l'aide de la commande grep avec différentes méthodes sur votre machine Linux.
Merci pour votre temps. Si vous rencontrez un problème ou des commentaires, veuillez laisser un commentaire ci-dessous.