[Perl] Numérotation

Résolu
Gihef Messages postés 5165 Statut Contributeur -  
Gihef Messages postés 5165 Statut Contributeur -
Bonjour,

Je commence à découvrir Perl et bute sur un problème.
Une chose toute simple, je recherche dans un document des occurences (lien http) et les stockes dans un document avec le n° de la ligne où elles ont été trouvées.
Mais j'aimerais aussi qu'avant d'insérer le n° de la ligne correspondante, insérer le nombre d'occurences trouvées.
  1 - ligne 5 - www…
  2 - ligne 22 - www…
  3 - ligne 48 - www…
  etc.
Comment faire ?

--
 
Configuration: Mac OS X
Safari 419.3

5 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    voici un p'tit exemple
    lami20j@deb:~$ cat ccm.pl
    #!/usr/bin/perl
    use strict;use warnings;
    
    my $l=0;
    while(<DATA>){
      print "${\($l=$l+1)} - ligne $.\t- $1\n" if /(http.*)/;
    }
    __END__
    aaaaaaa
    http://www.bbbbbb.fr
    aa
    cccc
    aa
    http://www.ccc.fr
    sdjf
    sdj
    jkjk
    https://www.commentcamarche.net/
    lami20j@deb:~$ perl ccm.pl
    1 - ligne 2     - http://www.bbbbbb.fr
    2 - ligne 6     - http://www.ccc.fr
    3 - ligne 10    - https://www.commentcamarche.net/
    lami20j@deb:~$
    
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    ou encore
    lami20j@deb:~$ cat ccm.pl
    #!/usr/bin/perl
    use strict;use warnings;
    
    my $l=1;
    while(<DATA>){
      print $l++," - ligne $.\t- $1\n" if /(http.*)/;
    }
    __END__
    aaaaaaa
    http://www.bbbbbb.fr
    aa
    cccc
    aa
    http://www.ccc.fr
    sdjf
    sdj
    jkjk
    https://www.commentcamarche.net/
    
    0
  3. Gihef Messages postés 5165 Statut Contributeur 2 781
     
    Merci.
    Il me suffit donc d'initialiser une variable ($1) et de l'incrémenter de 1 ($1+1) à chaque passage.
    Merci.

    [edit] $++ me parle plus…
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Oui, et le numéro de ligne comme tu l'as remarqué est donné par la variable spéciale $. ou $INPUT_LINE_NUMBER ou $NR si tu utilses use English
    #!/usr/bin/perl
    use strict;use warnings;
    use English;
    
    my $l=1;
    while(<DATA>){
      print $l++," - ligne $INPUT_LINE_NUMBER\t- $1\n" if /(http.*)/;
    }
    __END__
    aaaaaaa
    http://www.bbbbbb.fr
    aa
    cccc
    aa
    http://www.ccc.fr
    sdjf
    sdj
    jkjk
    https://www.commentcamarche.net/
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gihef Messages postés 5165 Statut Contributeur 2 781
     
    Vu.
    Merci.
    0