Voici 31 exemples de commandes grep utiles sous Linux/Unix ainsi que leurs explications et scénarios d'utilisation :
1. Rechercher un texte spécifique dans un fichier :
```
grep nom de fichier "texte de recherche"
```
Explication :Imprime les lignes qui correspondent au "texte de recherche" du nom de fichier spécifié.
Exemple :
```
grep "erreur" /var/log/system.log
```
Cette commande recherche toutes les lignes contenant « erreur » dans le fichier journal système.
2. Rechercher un texte spécifique de manière récursive dans un répertoire :
```
grep -r "search-text" nom-répertoire
```
Explication :Effectue une recherche récursive de "search-text" dans le répertoire spécifié et tous ses sous-répertoires.
Exemple :
```
grep -r "configuration" /etc/
```
Cette commande recherche récursivement tous les fichiers contenant le mot « configuration » dans le répertoire « /etc/ ».
3. Recherchez les lignes qui correspondent à une expression régulière :
```
grep -E nom de fichier "motif regex"
```
Explication :utilise des expressions régulières pour rechercher des lignes qui correspondent au modèle spécifié.
Exemple :
```
grep -E "^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1} .*" accès.log
```
Cette commande utilise une expression régulière pour rechercher toutes les lignes du fichier « access.log » qui commencent par un format de date (AAAA-MM-JJ suivi d'une heure).
4. Comptez le nombre de lignes correspondantes :
```
grep -c nom de fichier "recherche-texte"
```
Explication :Fournit un nombre de lignes qui correspondent au « texte de recherche » dans le nom de fichier spécifié.
Exemple :
```
grep -c "échec" /var/log/auth.log
```
Cette commande compte combien de fois le mot « échec » apparaît dans le fichier « /var/log/auth.log ».
5. Imprimez les lignes correspondantes avec les numéros de ligne :
```
grep -n nom de fichier "recherche-texte"
```
Explication :affiche les lignes correspondantes ainsi que leurs numéros de ligne dans le nom de fichier spécifié.
Exemple :
```
grep -n "avertissement" /var/log/messages
```
Cette commande affiche les numéros de ligne de toutes les lignes contenant le mot « avertissement » dans le fichier « /var/log/messages ».
6. Ignorer le respect de la casse dans la recherche :
```
grep -i nom de fichier "recherche-texte"
```
Explication :Effectue une recherche insensible à la casse pour "search-text" dans le nom de fichier spécifié.
Exemple :
```
grep -i "Erreur" /var/log/system.log
```
Cette commande recherche les occurrences en majuscules et en minuscules du mot « Erreur » dans le fichier journal du système.
7. Exclure les lignes qui correspondent à un texte spécifique :
```
grep -v "exclure-texte" nom de fichier
```
Explication :Imprime uniquement les lignes qui ne correspondent pas au "texte d'exclusion" dans le nom de fichier spécifié.
Exemple :
```
grep -v "INFO" /var/log/messages | grep "ERREUR"
```
Cette commande exclut d'abord les lignes contenant « INFO » du fichier « /var/log/messages », puis recherche les lignes contenant « ERROR » dans la sortie restante.
8. Recherchez un modèle et imprimez le contexte précédent :
```
grep -B "num" "search-text" nom de fichier
```
Explication :Imprime les lignes "num" avant le "texte de recherche" correspondant dans le nom de fichier spécifié.
Exemple :
```
grep -B 3 "message_erreur" /var/log/syslog
```
Cette commande affiche les 3 lignes avant chaque ligne contenant "error_message" dans le fichier journal système.
9. Recherchez un modèle et imprimez le contexte suivant :
```
grep -A nom de fichier "num" "search-text"
```
Explication :Imprime les lignes "num" après le "texte de recherche" correspondant dans le nom de fichier spécifié.
Exemple :
```
grep -A 5 "connexion_réussie" /var/log/auth.log
```
Cette commande imprime 5 lignes après chaque ligne contenant "successful_login" dans le fichier journal d'authentification.
10. Imprimez les lignes correspondantes avec les noms de fichiers :
```
grep -H "recherche-texte" *
```
Explication :affiche les lignes correspondantes ainsi que les noms des fichiers les contenant lors de la recherche de plusieurs fichiers.
Exemple :
```
grep -H "avertissement" /var/log/*.log
```
Cette commande recherche le mot « avertissement » dans tous les fichiers journaux situés dans le répertoire « /var/log/ » et imprime les lignes correspondantes ainsi que les noms de fichiers.
11. Imprimez uniquement la partie correspondante des lignes :
```
grep -o nom de fichier "modèle correspondant"
```
Explication :Imprime uniquement la partie des lignes qui correspond au "modèle de correspondance" spécifié dans le nom de fichier donné.
Exemple :
```
grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9 ]\{1,3\}" accès.log
```
Cette commande extrait et imprime uniquement les adresses IP des lignes du fichier "access.log".
12. Utilisez l'opérateur OR pour rechercher plusieurs modèles :
```
grep -E "modèle1|modèle2" nom de fichier
```
Explication :Recherche les lignes qui correspondent à "pattern1" ou "pattern2" dans le nom de fichier spécifié.
Exemple :
```
grep -E "échec|réussite" /var/log/auth.log
```
Cette commande recherche les lignes contenant soit le mot « échec » soit le mot « réussi » dans le fichier journal d'authentification.
13. Arrêter après le premier match :
```
grep -m 1 nom de fichier "recherche-texte"
```
Explication :arrête la recherche et imprime uniquement la première ligne correspondante dans le nom de fichier spécifié.
Exemple :
```
grep -m 1 "erreur critique" /var/log/messages
```
Cette commande imprime uniquement la première ligne contenant le texte « erreur critique » dans le fichier « /var/log/messages ».
14. Imprimez le numéro de ligne de la première ligne correspondante :
```
grep -b nom de fichier "texte de recherche"
```
Explication :affiche le décalage d'octet de la première ligne correspondante dans le nom de fichier spécifié.
Exemple :
```
grep -b "serveur de démarrage" /var/log/syslog
```
Cette commande imprime la position de l'octet dans le fichier où se trouve la ligne « serveur de démarrage ».
15. Rechercher dans des fichiers compressés (.gz) :
```
zgrep "texte de recherche" *.gz
```
Explication :Permet de rechercher dans les fichiers compressés ".gz" sans avoir besoin de les décompresser au préalable.
Exemple :
```
zgrep "message_erreur" /var/log/*.gz
```
Cette commande recherche "error_message" dans tous les fichiers ".gz" situés dans le répertoire "/var/log/" sans les décompresser.
16. Imprimez le nom du fichier correspondant s'il y a une correspondance :
```
grep -l "texte de recherche" *
```
Explication :Répertorie les noms de fichiers qui contiennent le « texte de recherche » sans imprimer les lignes correspondantes réelles.
Exemple :
```
grep -l "erreur critique" /var/log/*.log
```
Cette commande répertorie tous les fichiers journaux du répertoire "/var/log/" qui contiennent le texte "erreur critique".
17. Inversez le comportement de correspondance :
```
grep -v "recherche-texte" nom de fichier
```
Explication :Imprime uniquement les lignes qui ne correspondent pas au "texte de recherche" dans le nom de fichier spécifié.
Exemple :
```
grep -v "200 OK" access.log
```
Cette commande imprime toutes les lignes sauf celles contenant "200 OK" dans le fichier "access.log".
18. Imprimez uniquement les lignes qui contiennent de manière unique un texte spécifique :
```
grep --only-matching "search-text" nom de fichier
```
Explication :affiche uniquement les lignes qui correspondent exclusivement au « texte de recherche » et exclut toutes les lignes qui correspondent également à d'autres modèles dans le texte.
Exemple :
```
grep --only-matching "connecté avec succès" /var/log/messages
```
Cette commande imprime uniquement les lignes qui contiennent exactement « connecté avec succès » et non d'autres variantes comme « connecté avec succès à la base de données ».
19. Colorisez le texte correspondant :
```
grep --color nom de fichier "texte de recherche"
```
Explication :met en surbrillance le texte correspondant dans différentes couleurs pour améliorer la lisibilité.
Exemple :
```
grep --color "erreur" /var/log/syslog
```
Cette commande imprime les lignes contenant « erreur » dans le fichier journal système avec le texte correspondant surligné en couleur.
20. Afficher les statistiques pour les lignes correspondantes :
```
grep -c "search-text" nom de fichier | toilettes -l
```
Explication :Fournit le nombre de lignes correspondantes à l'aide de grep, puis utilise la commande "wc -l" pour afficher le nombre.
Exemple :
```
grep -c "avertissement" /var/log/messages | toilettes -l
```
Cette commande compte d'abord les lignes avec « avertissement » à l'aide de grep, puis affiche le nombre.
21. Filtrer les fichiers binaires lors de la recherche :
```
grep
|