#!/bin/perl
while (my $ligne = <>) {
print $ligne;
}
mais comme ligne est une string je me demandais comment récupérer
simplement le numéro d'une ligne.
En fait je recherche un motif dans un fichier texte et souhaiterais
récupérer la ligne dans laquelle il y a le motif et les 5 lignes
suivantes et effacer le reste mais j ai des petits probs pour avoir le
numéro de ligne.
idée: stocker les lignes dans un tableau peut être (mais comment ?)
ou solution plus simple ?
(je débute comme vous le voyez)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Freddo
oliv wrote:
Bonjour à tous
Hello!
mais comme ligne est une string je me demandais comment récupérer simplement le numéro d'une ligne.
le numero de la ligne en cours est dans $. (voir perldoc perlvar)
En fait je recherche un motif dans un fichier texte et souhaiterais récupérer la ligne dans laquelle il y a le motif et les 5 lignes suivantes et effacer le reste mais j ai des petits probs pour avoir le numéro de ligne.
#!/usr/bin/perl use strict; use warnings; use diagnostics;
my $trouve = 0;
while (<DATA>) { print "Ligne $.: $_";
/je recherche un motif/ and $trouve = 5; --$trouve, print "Affiche: $_" if $trouve > 0; }
__DATA__ Bonjour à tous
pour parcourir un fichier on utilise par exemple:
#!/bin/perl while (my $ligne = <>) { print $ligne; }
mais comme ligne est une string je me demandais comment récupérer simplement le numéro d'une ligne.
En fait je recherche un motif dans un fichier texte et souhaiterais récupérer la ligne dans laquelle il y a le motif et les 5 lignes suivantes et effacer le reste mais j ai des petits probs pour avoir le numéro de ligne.
idée: stocker les lignes dans un tableau peut être (mais comment ?) ou solution plus simple ? (je débute comme vous le voyez) __END__
(je débute comme vous le voyez)
les 3 premiers use au debut du listing sont vraiment une bonne aide, n'ai e pas peur d'en abuser ;-)
Bonne journee, freddo
oliv wrote:
Bonjour à tous
Hello!
mais comme ligne est une string je me demandais comment récupérer
simplement le numéro d'une ligne.
le numero de la ligne en cours est dans $. (voir perldoc perlvar)
En fait je recherche un motif dans un fichier texte et souhaiterais
récupérer la ligne dans laquelle il y a le motif et les 5 lignes
suivantes et effacer le reste mais j ai des petits probs pour avoir le
numéro de ligne.
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my $trouve = 0;
while (<DATA>) {
print "Ligne $.: $_";
/je recherche un motif/ and $trouve = 5;
--$trouve, print "Affiche: $_" if $trouve > 0;
}
__DATA__
Bonjour à tous
pour parcourir un fichier on utilise par exemple:
#!/bin/perl
while (my $ligne = <>) {
print $ligne;
}
mais comme ligne est une string je me demandais comment récupérer
simplement le numéro d'une ligne.
En fait je recherche un motif dans un fichier texte et souhaiterais
récupérer la ligne dans laquelle il y a le motif et les 5 lignes
suivantes et effacer le reste mais j ai des petits probs pour avoir le
numéro de ligne.
idée: stocker les lignes dans un tableau peut être (mais comment ?)
ou solution plus simple ?
(je débute comme vous le voyez)
__END__
(je débute comme vous le voyez)
les 3 premiers use au debut du listing sont vraiment une bonne aide, n'ai e
pas peur d'en abuser ;-)
mais comme ligne est une string je me demandais comment récupérer simplement le numéro d'une ligne.
le numero de la ligne en cours est dans $. (voir perldoc perlvar)
En fait je recherche un motif dans un fichier texte et souhaiterais récupérer la ligne dans laquelle il y a le motif et les 5 lignes suivantes et effacer le reste mais j ai des petits probs pour avoir le numéro de ligne.
#!/usr/bin/perl use strict; use warnings; use diagnostics;
my $trouve = 0;
while (<DATA>) { print "Ligne $.: $_";
/je recherche un motif/ and $trouve = 5; --$trouve, print "Affiche: $_" if $trouve > 0; }
__DATA__ Bonjour à tous
pour parcourir un fichier on utilise par exemple:
#!/bin/perl while (my $ligne = <>) { print $ligne; }
mais comme ligne est une string je me demandais comment récupérer simplement le numéro d'une ligne.
En fait je recherche un motif dans un fichier texte et souhaiterais récupérer la ligne dans laquelle il y a le motif et les 5 lignes suivantes et effacer le reste mais j ai des petits probs pour avoir le numéro de ligne.
idée: stocker les lignes dans un tableau peut être (mais comment ?) ou solution plus simple ? (je débute comme vous le voyez) __END__
(je débute comme vous le voyez)
les 3 premiers use au debut du listing sont vraiment une bonne aide, n'ai e pas peur d'en abuser ;-)
Bonne journee, freddo
minigitoo
Hello Merci pour la réponse
Seulement à mon avis ca ne marche pas. En effet je ne vois pas comment le code ci-dessous copie dans un fichier la ligne en cours et les 4 suivantes quand le motif est trouvé.
Des idées ?
Olivier
En fait je recherche un motif dans un fichier texte et souhaiterais r cup rer la ligne dans laquelle il y a le motif et les 5 lignes suivantes et effacer le reste mais j ai des petits probs pour avoir le num ro de ligne.
#!/usr/bin/perl use strict; use warnings; use diagnostics;
my $trouve = 0;
while (<DATA>) { print "Ligne $.: $ ";
/je recherche un motif/ and $trouve = 5; --$trouve, print "Affiche: $ " if $trouve > 0; }
DATA
Hello Merci pour la réponse
Seulement à mon avis ca ne marche pas.
En effet je ne vois pas comment le code ci-dessous copie dans un
fichier la ligne en cours et les 4 suivantes quand le motif est
trouvé.
Des idées ?
Olivier
En fait je recherche un motif dans un fichier texte et souhaiterais
r cup rer la ligne dans laquelle il y a le motif et les 5 lignes
suivantes et effacer le reste mais j ai des petits probs pour avoir le
num ro de ligne.
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my $trouve = 0;
while (<DATA>) {
print "Ligne $.: $ ";
/je recherche un motif/ and $trouve = 5;
--$trouve, print "Affiche: $ " if $trouve > 0;
}
Seulement à mon avis ca ne marche pas. En effet je ne vois pas comment le code ci-dessous copie dans un fichier la ligne en cours et les 4 suivantes quand le motif est trouvé.
Des idées ?
Olivier
En fait je recherche un motif dans un fichier texte et souhaiterais r cup rer la ligne dans laquelle il y a le motif et les 5 lignes suivantes et effacer le reste mais j ai des petits probs pour avoir le num ro de ligne.
#!/usr/bin/perl use strict; use warnings; use diagnostics;
my $trouve = 0;
while (<DATA>) { print "Ligne $.: $ ";
/je recherche un motif/ and $trouve = 5; --$trouve, print "Affiche: $ " if $trouve > 0; }
DATA
Freddo
oliv wrote:
En effet je ne vois pas comment le code ci-dessous copie dans un fichier la ligne en cours et les 4 suivantes quand le motif est trouvé.
Si tu essaies le script, tu verras qu'il affiche:
...[snip]... Ligne 10: mais comme ligne est une string je me demandais comment récu pérer Ligne 11: simplement le numéro d'une ligne. Ligne 12: Ligne 13: En fait je recherche un motif dans un fichier texte et souhait erais Affiche: En fait je recherche un motif dans un fichier texte et souhaite rais Ligne 14: récupérer la ligne dans laquelle il y a le motif et les 5 lignes Affiche: récupérer la ligne dans laquelle il y a le motif et les 5 l ignes Ligne 15: suivantes et effacer le reste mais j ai des petits probs pour avoir le Affiche: suivantes et effacer le reste mais j ai des petits probs pour a voir le Ligne 16: numéro de ligne. Affiche: numéro de ligne. Ligne 17: Affiche: Ligne 18: idée: stocker les lignes dans un tableau peut être (mais c omment ?) Ligne 19: ou solution plus simple ? ...[snip]...
Tout se passe dans le while:
my $trouve = 0; $trouve sert de flag (savoir si on a trouve ou pas le texte qu'on cherche .
while (<DATA>) { prends comme entree le text qu'il y a apres la ligne __DATA__ et place ch aque ligne ds $_
print "Ligne $.: $ "; juste un example pour te montrer comment fonctionne $. (perldoc perlvar)
/je recherche un motif/ and $trouve = 5; si "je recherche un motif" est trouve sur une ligne, $trouve est mis a 5
--$trouve, print "Affiche: $ " if $trouve > 0; decremente la variable $trouve et affiche la ligne courante tant que $tro uve est plus grand que 0 (donc la ligne ou le motif a ete trouve, puis le s 4 suivantes)
}
libre a toi bien sur d'ouvrir un autre fichier que <DATA> et d'ecrire ail leurs que sur la sortie standard.
freddo
oliv wrote:
En effet je ne vois pas comment le code ci-dessous copie dans un
fichier la ligne en cours et les 4 suivantes quand le motif est
trouvé.
Si tu essaies le script, tu verras qu'il affiche:
...[snip]...
Ligne 10: mais comme ligne est une string je me demandais comment récu pérer
Ligne 11: simplement le numéro d'une ligne.
Ligne 12:
Ligne 13: En fait je recherche un motif dans un fichier texte et souhait erais
Affiche: En fait je recherche un motif dans un fichier texte et souhaite rais
Ligne 14: récupérer la ligne dans laquelle il y a le motif et les 5 lignes
Affiche: récupérer la ligne dans laquelle il y a le motif et les 5 l ignes
Ligne 15: suivantes et effacer le reste mais j ai des petits probs pour avoir le
Affiche: suivantes et effacer le reste mais j ai des petits probs pour a voir le
Ligne 16: numéro de ligne.
Affiche: numéro de ligne.
Ligne 17:
Affiche:
Ligne 18: idée: stocker les lignes dans un tableau peut être (mais c omment ?)
Ligne 19: ou solution plus simple ?
...[snip]...
Tout se passe dans le while:
my $trouve = 0;
$trouve sert de flag (savoir si on a trouve ou pas le texte qu'on cherche .
while (<DATA>) {
prends comme entree le text qu'il y a apres la ligne __DATA__ et place ch aque ligne ds $_
print "Ligne $.: $ ";
juste un example pour te montrer comment fonctionne $. (perldoc perlvar)
/je recherche un motif/ and $trouve = 5;
si "je recherche un motif" est trouve sur une ligne, $trouve est mis a 5
--$trouve, print "Affiche: $ " if $trouve > 0;
decremente la variable $trouve et affiche la ligne courante tant que $tro uve est plus grand que 0 (donc la ligne ou le motif a ete trouve, puis le s 4 suivantes)
}
libre a toi bien sur d'ouvrir un autre fichier que <DATA> et d'ecrire ail leurs que sur la sortie standard.
En effet je ne vois pas comment le code ci-dessous copie dans un fichier la ligne en cours et les 4 suivantes quand le motif est trouvé.
Si tu essaies le script, tu verras qu'il affiche:
...[snip]... Ligne 10: mais comme ligne est une string je me demandais comment récu pérer Ligne 11: simplement le numéro d'une ligne. Ligne 12: Ligne 13: En fait je recherche un motif dans un fichier texte et souhait erais Affiche: En fait je recherche un motif dans un fichier texte et souhaite rais Ligne 14: récupérer la ligne dans laquelle il y a le motif et les 5 lignes Affiche: récupérer la ligne dans laquelle il y a le motif et les 5 l ignes Ligne 15: suivantes et effacer le reste mais j ai des petits probs pour avoir le Affiche: suivantes et effacer le reste mais j ai des petits probs pour a voir le Ligne 16: numéro de ligne. Affiche: numéro de ligne. Ligne 17: Affiche: Ligne 18: idée: stocker les lignes dans un tableau peut être (mais c omment ?) Ligne 19: ou solution plus simple ? ...[snip]...
Tout se passe dans le while:
my $trouve = 0; $trouve sert de flag (savoir si on a trouve ou pas le texte qu'on cherche .
while (<DATA>) { prends comme entree le text qu'il y a apres la ligne __DATA__ et place ch aque ligne ds $_
print "Ligne $.: $ "; juste un example pour te montrer comment fonctionne $. (perldoc perlvar)
/je recherche un motif/ and $trouve = 5; si "je recherche un motif" est trouve sur une ligne, $trouve est mis a 5
--$trouve, print "Affiche: $ " if $trouve > 0; decremente la variable $trouve et affiche la ligne courante tant que $tro uve est plus grand que 0 (donc la ligne ou le motif a ete trouve, puis le s 4 suivantes)
}
libre a toi bien sur d'ouvrir un autre fichier que <DATA> et d'ecrire ail leurs que sur la sortie standard.
freddo
minigitoo
Hello merci pour la réponse j'ai lancé le programme ci dessous il ne marche pas et génère deux erreurs que je n arrive pas à corriger
open (F, '< sansbalises.txt') || die "Problème pour ouvrir $fichier: $!"; my $trouve = 0; while (<F>) { print "Ligne $.: $ "; /soc/ and $trouve = 5; --$trouve, print "Affiche: $ " if $trouve > 0; } close F;
dans le fichier sansbalises.txt il y a: ytfutuuuytu<>gfhgfh soc <gfh>soc hgfh ytgfiuyhg <yh> jl socghjkhgjkjhkaaaa plopô
Donc si tu as une idée pour corriger le bug
Sinon j ai essayer d'autres trucs en mettant un if dans la boucle while mais j ai l'impression qu il ne rentre pas dans la boucle
Finalement les trois uses dont tu parles je ne les ai pas.
Merci de tes lumières
Hello merci pour la réponse j'ai lancé le programme ci dessous il ne
marche pas et génère deux erreurs que je n arrive pas à corriger
open (F, '< sansbalises.txt') || die "Problème pour ouvrir $fichier:
$!";
my $trouve = 0;
while (<F>)
{
print "Ligne $.: $ ";
/soc/ and $trouve = 5;
--$trouve, print "Affiche: $ " if $trouve > 0;
}
close F;
dans le fichier sansbalises.txt il y a:
ytfutuuuytu<>gfhgfh soc <gfh>soc hgfh
ytgfiuyhg <yh> jl
socghjkhgjkjhkaaaa
plopô
Donc si tu as une idée pour corriger le bug
Sinon j ai essayer d'autres trucs en mettant un if dans la boucle
while mais j ai l'impression qu il ne rentre pas dans la boucle
Finalement les trois uses dont tu parles je ne les ai pas.
Hello merci pour la réponse j'ai lancé le programme ci dessous il ne marche pas et génère deux erreurs que je n arrive pas à corriger
open (F, '< sansbalises.txt') || die "Problème pour ouvrir $fichier: $!"; my $trouve = 0; while (<F>) { print "Ligne $.: $ "; /soc/ and $trouve = 5; --$trouve, print "Affiche: $ " if $trouve > 0; } close F;
dans le fichier sansbalises.txt il y a: ytfutuuuytu<>gfhgfh soc <gfh>soc hgfh ytgfiuyhg <yh> jl socghjkhgjkjhkaaaa plopô
Donc si tu as une idée pour corriger le bug
Sinon j ai essayer d'autres trucs en mettant un if dans la boucle while mais j ai l'impression qu il ne rentre pas dans la boucle
Finalement les trois uses dont tu parles je ne les ai pas.
Merci de tes lumières
Freddo
oliv wrote:
Hello merci pour la réponse j'ai lancé le programme ci dessous il n e marche pas et génère deux erreurs que je n arrive pas à corriger ...[snip]... Donc si tu as une idée pour corriger le bug
Voila:
#!/usr/bin/perl use strict; use warnings; use diagnostics;
my $trouve = 0;
open F, '< sansbalises.txt' or die $!;
while (<F>) { /soc/ and $trouve = 5; --$trouve, print if $trouve > 0; }
close F;
Finalement les trois uses dont tu parles je ne les ai pas.
Bizarre, normalement ils viennent en standard avec perl...
Bonne journee, freddo
oliv wrote:
Hello merci pour la réponse j'ai lancé le programme ci dessous il n e
marche pas et génère deux erreurs que je n arrive pas à corriger
...[snip]...
Donc si tu as une idée pour corriger le bug
Voila:
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my $trouve = 0;
open F, '< sansbalises.txt' or die $!;
while (<F>) {
/soc/ and $trouve = 5;
--$trouve, print if $trouve > 0;
}
close F;
Finalement les trois uses dont tu parles je ne les ai pas.
Bizarre, normalement ils viennent en standard avec perl...
Hello merci pour la réponse j'ai lancé le programme ci dessous il n e marche pas et génère deux erreurs que je n arrive pas à corriger ...[snip]... Donc si tu as une idée pour corriger le bug
Voila:
#!/usr/bin/perl use strict; use warnings; use diagnostics;
my $trouve = 0;
open F, '< sansbalises.txt' or die $!;
while (<F>) { /soc/ and $trouve = 5; --$trouve, print if $trouve > 0; }
close F;
Finalement les trois uses dont tu parles je ne les ai pas.
Bizarre, normalement ils viennent en standard avec perl...