[Perl] Numérotation
Résolu
Gihef
Messages postés
5165
Statut
Contributeur
-
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.
--
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
-
Salut,
voici un p'tit exemplelami20j@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:~$ -
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/ -
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…
-
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/ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -