commande grep sous Unix/Linux

commande grep sous Unix/Linux

Le grep> La commande sous Unix/Linux est un outil puissant utilisé pour rechercher et manipuler des modèles de texte dans les fichiers. Son nom est dérivé de la commande ed (éditeur) g/re/p (recherche globale d'une expression régulière et impression des lignes correspondantes), qui reflète sa fonctionnalité principale. grep> est largement utilisé par les programmeurs, les administrateurs système et les utilisateurs pour son efficacité et sa polyvalence dans la gestion des données texte. Dans cet article, nous explorerons les différents aspects de la grep> commande.

Table des matières

Syntaxe de la commande grep sous Unix/Linux

La syntaxe de base du ` grep`> la commande est la suivante :

  grep [options] pattern [files] 

Ici,

[> options> ]> : Ce sont des indicateurs de ligne de commande qui modifient le comportement de grep> .

[> pattern> ]> : Il s'agit de l'expression régulière que vous souhaitez rechercher.

[> file> ]> : Il s'agit du nom du ou des fichiers dans lesquels vous souhaitez effectuer la recherche. Vous pouvez spécifier plusieurs fichiers pour une recherche simultanée.

Options disponibles dans la commande grep

Possibilités

Description

-c

Ceci imprime uniquement le nombre de lignes qui correspondent à un motif

-h

Affichez les lignes correspondantes, mais n'affichez pas les noms de fichiers.

je

Ignore, cas de correspondance

-l

Affiche uniquement la liste des noms de fichiers.

-n

Affichez les lignes correspondantes et leurs numéros de ligne.

-dans

Ceci imprime toutes les lignes qui ne correspondent pas au motif

-e exp

Spécifie l'expression avec cette option. Peut être utilisé plusieurs fois.

-f fichier

Prend des modèles du fichier, un par ligne.

-ET

Traite le modèle comme une expression régulière étendue (ERE)

-Dans

Correspond à un mot entier

-O

Imprimez uniquement les parties correspondantes d'une ligne correspondante, chacune de ces parties étant sur une ligne de sortie distincte.

-Un

Imprime la ligne recherchée et les nlines après le résultat.

-Bn

Imprime la ligne recherchée et la n ligne avant le résultat.

-Cn

Imprime la ligne recherchée et n lignes après avant le résultat.

Exemples de commandes

Considérez le fichier ci-dessous comme une entrée.

cat>geekfile.txt 

Unix est un excellent système d'exploitation. Unix a été développé dans les laboratoires Bell.

apprendre le système d'exploitation.

Unix Linux lequel vous choisissez.

uNix est facile à apprendre. Unix est un système d'exploitation multi-utilisateurs. Apprendre unix .unix est un système puissant.

Exemple pratique de commande grep sous Linux

L'option -i permet de rechercher une chaîne sans tenir compte de la casse dans le fichier donné. Cela correspond aux mots comme UNIX, Unix, unix.

grep -i 'UNix' geekfile.txt 

Sortir:

Recherche insensible à la casse

Recherche insensible à la casse

2. Affichage du nombre de correspondances à l'aide de grep

Nous pouvons trouver le nombre de lignes qui correspondent à la chaîne/au motif donné

grep -c 'unix' geekfile.txt 

Sortir:

Affichage du nombre de matchs

Affichage du nombre de matchs

3. Affichez les noms de fichiers qui correspondent au modèle à l'aide de grep

Nous pouvons simplement afficher les fichiers qui contiennent la chaîne/le modèle donné.

grep -l 'unix' * 

ou

grep -l 'unix' f1.txt f2.txt f3.xt f4.txt 

Sortir:

Le nom de fichier qui correspond au modèle

Le nom de fichier qui correspond au modèle

4. Vérification des mots entiers dans un fichier à l'aide de grep

Par défaut, grep correspond à la chaîne/au modèle donné même s'il se trouve en tant que sous-chaîne dans un fichier. L'option -w de grep fait correspondre uniquement les mots entiers.

grep -w 'unix' geekfile.txt 

Sortir:

vérifier des mots entiers dans un fichier

vérifier des mots entiers dans un fichier

5. Afficher uniquement le modèle correspondant Utilisation de grep

Par défaut, grep affiche la ligne entière contenant la chaîne correspondante. Nous pouvons faire en sorte que grep affiche uniquement la chaîne correspondante en utilisant l'option -o.

grep -o 'unix' geekfile.txt 

Sortir:

Afficher uniquement le motif correspondant

Afficher uniquement le motif correspondant

6. Afficher le numéro de ligne lors de l'affichage de la sortie à l'aide de grep -n

Pour afficher le numéro de ligne du fichier avec la ligne correspondante.

grep -n 'unix' geekfile.txt 

Sortir:

Afficher le numéro de ligne lors de l

Afficher le numéro de ligne lors de l'affichage de la sortie

7. Inversion de la correspondance de modèle à l'aide de grep

Vous pouvez afficher les lignes qui ne correspondent pas au modèle de chaîne de recherche spécifié à l'aide de l'option -v.

grep -v 'unix' geekfile.txt 

Sortir:

Inverser la correspondance de motif

Inverser la correspondance de motif

8. Faire correspondre les lignes commençant par une chaîne à l'aide de grep

Le modèle d'expression régulière ^ spécifie le début d'une ligne. Cela peut être utilisé dans grep pour faire correspondre les lignes qui commencent par la chaîne ou le modèle donné.

grep '^unix' geekfile.txt 

Sortir:

Faire correspondre les lignes commençant par une chaîne

Faire correspondre les lignes commençant par une chaîne

9. Faire correspondre les lignes qui se terminent par une chaîne à l'aide de grep

Le modèle d'expression régulière $ spécifie la fin d'une ligne. Cela peut être utilisé dans grep pour faire correspondre les lignes qui se terminent par la chaîne ou le modèle donné.

grep 'os$' geekfile.txt 

10.Spécifie l'expression avec l'option -e

Peut être utilisé plusieurs fois :

grep –e 'Agarwal' –e 'Aggarwal' –e 'Agrawal' geekfile.txt 

11. Option de fichier -f Prend les modèles du fichier, un par ligne

cat pattern.txt 

Agarwal
Aggarwal
Agrawal

grep –f pattern.txt geekfile.txt 

12. Imprimer n lignes spécifiques à partir d'un fichier à l'aide de grep

-A imprime la ligne recherchée et n lignes après le résultat, -B imprime la ligne recherchée et n lignes avant le résultat, et -C imprime la ligne recherchée et n lignes après et avant le résultat.

Syntaxe:

grep -A[NumberOfLines(n)] [search] [file] grep -B[NumberOfLines(n)] [search] [file] grep -C[NumberOfLines(n)] [search] [file] 

Exemple:

grep -A1 learn geekfile.txt 

Sortir:

Imprimer n lignes spécifiques à partir d

Imprimer n lignes spécifiques à partir d'un fichier

13. Recherchez de manière récursive un modèle dans le D répertoire

-R imprime le modèle recherché dans le répertoire donné de manière récursive dans tous les fichiers.

Syntaxe:

grep -R [Search] [directory] 

Exemple :

grep -iR geeks /home/geeks 

Sortir:

./geeks2.txt:Well Hello Geeks ./geeks1.txt:I am a big time geek ---------------------------------- -i to search for a string case insensitively -R to recursively check all the files in the directory. 

Conclusion

Dans cet article, nous avons discuté de grep> sous Linux, un puissant outil de recherche de texte qui utilise des expressions régulières pour rechercher des modèles ou du texte dans des fichiers. Il offre diverses options telles que l'insensibilité à la casse, le comptage des correspondances et la liste des noms de fichiers. Avec la possibilité de rechercher de manière récursive, d'utiliser des indicateurs d'expression régulière et de personnaliser la sortie, grep> est un outil essentiel permettant aux utilisateurs de Linux de gérer efficacement les tâches liées au texte. Maîtriser grep> améliore votre capacité à travailler avec des données texte dans l'environnement Linux.