Afficher le numéro de la ligne sous Perl

Fermé
ad85 - 18 oct. 2008 à 16:54
 ad85 - 19 oct. 2008 à 15:27
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
18 oct. 2008 à 17:50
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
merci pour ton aide sa marche bien.
Aussi je voulais savoir a quoi signifie "CustomLog " et "log pipe" toujours sur apache?
MERCI
0