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.NETCré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.






