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
Configuration: Windows Vista
Internet Explorer 7.0

1 réponse

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
    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