Afficher le numéro de la ligne sous Perl

ad85 -  
 ad85 -
Bonjour, je dois faire un petit programme en Perl ermettant de récupérer une chaîne de caratères dans un fichier.
J'ai écri le code suivant:
#!/usr/bin/perl;
@ARGV = ("fichier à analyser");
while (<>) {
if (/chaîne de caractères /) {
print "$_";

Aussi, je voudrais que le programme m'affiche aussi le numéro des lignes ou se trouve la chaine de caractères dans le fichier à analyser, comment dois-je faire? Y a t-il une commande particulière? si oui laquelle??

je vous remercie
A voir également:

1 réponse

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Tu peux utiliser la variable spéciale $.
Sinon tu peux utiliser une variable compteur.

Version 1
lami20j@debian:~/trash$ cat fichier.txt
# ligne 1
ligne 2
# ligne 3
#ligne 4
ligne 5
lami20j@debian:~/trash$ cat nr_ligne.pl
#!/usr/bin/perl;
use strict;use warnings;

while (<>) {
  print "$. . $_" if /4/;
}
__END__
lami20j@debian:~/trash$ perl nr_ligne.pl fichier.txt
4 . #ligne 4
lami20j@debian:~/trash$



Version 2
lami20j@debian:~/trash$ cat fichier.txt
# ligne 1
ligne 2
# ligne 3
#ligne 4
ligne 5
lami20j@debian:~/trash$ cat nr_ligne.pl
#!/usr/bin/perl;
use strict;use warnings;

open F,"fichier.txt" or die "E/S : $!\n";

while (<F>) {
  print "$. . $_" if /4/;
}
__END__
lami20j@debian:~/trash$ perl nr_ligne.pl
4 . #ligne 4

1
ad85
 
merci pour ton aide sa marche bien.
Aussi je voulais savoir a quoi signifie "CustomLog " et "log pipe" toujours sur apache?
MERCI
0