Recherche de site Web

Exemples de Perl Grep


La commande « grep » est utilisée dans Linux pour rechercher des fichiers ou des dossiers spécifiques ou un contenu particulier à partir d'un fichier. La commande « grep » en Perl est utilisée pour obtenir la liste filtrée d'une liste de données basée sur une condition ou un motif particulier. Cette commande peut également être utilisée pour retrouver les lignes d'un fichier en fonction d'un motif d'expression régulière particulier. Donc, vous devez savoir comment écrire le motif d'expression régulière pour utiliser regex avec la commande « grep » en Perl. Les façons d'utiliser la commande « grep » en Perl sont illustrées à l'aide de plusieurs scripts Perl dans ce tutoriel.

Différentes utilisations de la commande “Grep ”

Les utilisations de la commande « grep » pour rechercher le contenu dans un fichier et un tableau sont montrées dans cette partie du tutoriel à l'aide de trois exemples.

Exemple 1 : Utilisation de la commande “Grep” pour rechercher des valeurs dans un fichier

Créer un fichier texte nommé "languages.txt" en utilisant le contenu suivant qui est utilisé dans le script Perl :

langues.txt

Bash

Python

Perl

PHP

Java

C++

Perl

VB.NET

Créez un fichier Perl avec le script suivant qui prend le nom de fichier et la chaîne de recherche de l'utilisateur pour rechercher la valeur de la chaîne dans le contenu du fichier. La fonction open() est utilisée dans le script pour ouvrir le fichier en lecture si le nom de fichier fourni par l'utilisateur existe dans l'emplacement actuel. Ensuite, lisez le contenu complet du fichier et recherchez le mot donné par l'utilisateur dans le contenu en utilisant la commande « grep ».

#!/usr/bin/perl

use warnings;

use v5.34.0;

say "Enter the filename: ";

#Take file name to search

my $filename = <>;

chomp($filename);

say "Enter the search string: ";

#Take the search string

my $search = <>;

chomp($search);

#Open file for reading

if(open(file_handler, $filename))

{

  #Read all content of the file

  my @content=<file_handler>;

  close file_handler;

  #Search the searching string in the file

  my @result=grep /$search/,@content;

  #Count the length of the array

  my $len = @result;

  #print message based on the search result

  if($len > 0)

{

  print "The '$search' word exist $len time(s) in the file.\n";

}

else

{

  print "No matching word found.\n";

}

}

else

{

  print "File does not exist.\n";

}

Sortie :

La sortie suivante apparaît après l'exécution du script avec le nom de fichier « languages » et la chaîne de recherche « Perl ». Ici, le nom de fichier est incorrect :

La sortie suivante apparaît après l'exécution du script avec le nom de fichier « languages.txt » et la chaîne de recherche « Drupal ». Ici, le nom de fichier est correct, mais la valeur de la chaîne n'existe pas dans le fichier:

La sortie suivante apparaît après l'exécution du script avec le nom de fichier « languages.txt » et la chaîne de recherche « Perl ». Ici, le nom de fichier est correct et la valeur de chaîne existe dans le fichier :

Exemple 2 : Utilisation de la commande « Grep » pour rechercher un contenu dans un tableau de nombres

Créez un fichier Perl avec le script suivant qui prend un nombre de l'utilisateur et recherche le nombre dans un tableau. Un tableau de 8 nombres est déclaré dans le script. La première commande "grep" est utilisée dans le script pour rechercher le nombre d'entrée dans le tableau. La deuxième commande "grep" est utilisée dans le script pour rechercher les nombres dans le tableau qui sont supérieurs à 25 et inférieurs ou égaux à 50.

#!/usr/bin/perl

use warnings;

my @numbers = (23, 6, 31, 89, 56, 22, 9, 45);

print "Enter the search number: ";

#Take search string

my $n = <>;

chomp($n);

#Search the particular number

my @search_result = grep { $_ == $n } @numbers;

if (@search_result)

{

  print "$n exists in the array.\n";

}

else

{

  print "$n does not exist in the array.\n";

}

#Search the range of numbers

@search_result = grep { $_ > 25 && $_ <=50 } @numbers;

print "The list of numbers less between 25 to 50 are:\n @search_result\n";

Sortie :

La sortie suivante apparaît après l'exécution du script avec le nombre 23 :

La sortie suivante apparaît après l'exécution du script avec le nombre 44 :

Exemple 3 : Utilisation de la commande « Grep » pour rechercher un contenu dans un tableau de chaînes

Créez un fichier Perl avec le script suivant qui prend une valeur de chaîne de l'utilisateur et recherche la valeur dans le tableau. Un tableau de chaînes est déclaré dans le script. La commande "grep" est utilisée dans le script pour rechercher la chaîne d'entrée dans le tableau et comparer les valeurs d'entrée avec les deux autres valeurs de chaîne. Le message est imprimé en fonction du résultat de la recherche et du résultat de la comparaison de la commande "grep".

#!/usr/bin/perl

use warnings;

#Declare an array of strings

my @students = ('Milon Hossain', 'Sangita Das', 'Ria Moni', 'Shihabudddin', 'Tanzin Tisa');

print "Enter the student name: ";

#Take the input

my $name = <>;

chomp($name);

#Search the name

my @search_result = grep { $_ eq $name && ($name eq 'Milon Hossain' || $name eq 'Ria Moni') } @students;

#Print message based on the search result

if (@search_result)

{

  print "$name passed the exam.\n";

}

else

{

  print "$name didn't pass the exam.\n";

}

Sortie :

La sortie suivante apparaît après l'exécution du script avec la valeur d'entrée "Ria Moni" :

La sortie suivante apparaît après l'exécution du script avec la valeur d'entrée "Tarek Chowdhury" :

Conclusion

Les utilisations de la commande « grep » en fonction d'une ou plusieurs conditions sont montrées dans ce tutoriel.