logo

commande grep sous Unix/Linux

Legrep>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 lagrep>commande.

Table des matières

chaîne sous forme de tableau

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 degrep>.

[> 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:

fonction statique en Java
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'affichage de la sortie

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'un fichier

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é degrep>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îtrisergrep>améliore votre capacité à travailler avec des données texte dans l'environnement Linux.