c'est mon premier post ici car je commence à peine avec perl.
auusi, soyez indulgents !
donc ma question :
dans un fichier texte, je voudrais ajouter un ";" à la fin des lignes qui
commencents par "toto" (par exemple). jusque la, ca va à peu prés. mais, et oui
il y a un "mais", certaines lignes ont la structure suivante :
toto bla bla bla bla blabla // commentaires
et bien sur dans ce cas, il faut ajouter le ";" aprés le "blabla" mais avant le
"//" et la je ne vois même pas comment c'est possible.
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
tyoup
Kurts wrote:
dans un fichier texte, je voudrais ajouter un ";" à la fin des lignes qui commencents par "toto" (par exemple). jusque la, ca va à peu prés. mais, et oui il y a un "mais", certaines lignes ont la structure suivante :
toto bla bla bla bla blabla // commentaires
et bien sur dans ce cas, il faut ajouter le ";" aprés le "blabla" mais avant le "//" et la je ne vois même pas comment c'est possible.
si vous pouvez m'aider... merci
while(<>) { s#(//|$)#;$1# if /^toto/; print; }
-- Tyoup
Kurts wrote:
dans un fichier texte, je voudrais ajouter un ";" à la fin des lignes qui
commencents par "toto" (par exemple). jusque la, ca va à peu prés. mais, et oui
il y a un "mais", certaines lignes ont la structure suivante :
toto bla bla bla bla blabla // commentaires
et bien sur dans ce cas, il faut ajouter le ";" aprés le "blabla" mais avant le
"//" et la je ne vois même pas comment c'est possible.
dans un fichier texte, je voudrais ajouter un ";" à la fin des lignes qui commencents par "toto" (par exemple). jusque la, ca va à peu prés. mais, et oui il y a un "mais", certaines lignes ont la structure suivante :
toto bla bla bla bla blabla // commentaires
et bien sur dans ce cas, il faut ajouter le ";" aprés le "blabla" mais avant le "//" et la je ne vois même pas comment c'est possible.
si vous pouvez m'aider... merci
while(<>) { s#(//|$)#;$1# if /^toto/; print; }
-- Tyoup
Kurts
In article <c1svn7$vns$, tyoup wrote:
while(<>) { s#(//|$)#;$1# if /^toto/; print; }
merci pour ta réponse si rapide !!!!
bon j'ai pas encore tout compris mais ca marche presque...
voila mon script, (le tout premier !!!!) : --------------------------------------------------------------------------- #$originalfile = "dini2.pov"; $originalfile = $ARGV[0]; $modifiedfile = "temp.txt";
fait perldoc perlrun ou man perlrun ou va voir la doc en francais a http://www.enstimac.fr/Perl/DocFr.html pour les explications sur les options -i -p et -e
sinon la substitution expliquee (elle agit sur $_, qui contient la ligne courante): s{;? # un ; optionel (pour eviter de le dupliquer) ( # on commence a capturer dans $1 s* # des espaces (0 ou plus) ($|//) # la fin de ligne ($) ou // ) # fin de la capture } {;$1}x # on remplace par la chaine capturee, pour remettre les # espaces et/ou // # l'option x permet de commenter les expressions
# regulieres
de meme if( m{^#declare}) matche #declare en debut de ligne (^)
C'est plus clair?
oui !!!
super merci.
In article <c1vsql$oim$1@news-reader4.wanadoo.fr>,
Michel Rodriguez <mirod@xmltwig.com> wrote:
Salut,
Bon, ben au detail pres que le fichier d'origine sera sauve comme
<nom_original>.old, ca peut s'ecrire en une seule ligne:
fait perldoc perlrun ou man perlrun ou va voir la doc en francais a
http://www.enstimac.fr/Perl/DocFr.html pour les explications sur les
options -i -p et -e
sinon la substitution expliquee (elle agit sur $_, qui contient la ligne
courante):
s{;? # un ; optionel (pour eviter de le dupliquer)
( # on commence a capturer dans $1
s* # des espaces (0 ou plus)
($|//) # la fin de ligne ($) ou //
) # fin de la capture
}
{;$1}x # on remplace par la chaine capturee, pour remettre les
# espaces et/ou //
# l'option x permet de commenter les expressions
# regulieres
de meme if( m{^#declare}) matche #declare en debut de ligne (^)
fait perldoc perlrun ou man perlrun ou va voir la doc en francais a http://www.enstimac.fr/Perl/DocFr.html pour les explications sur les options -i -p et -e
sinon la substitution expliquee (elle agit sur $_, qui contient la ligne courante): s{;? # un ; optionel (pour eviter de le dupliquer) ( # on commence a capturer dans $1 s* # des espaces (0 ou plus) ($|//) # la fin de ligne ($) ou // ) # fin de la capture } {;$1}x # on remplace par la chaine capturee, pour remettre les # espaces et/ou // # l'option x permet de commenter les expressions
# regulieres
de meme if( m{^#declare}) matche #declare en debut de ligne (^)
C'est plus clair?
oui !!!
super merci.
Michel Rodriguez
Salut,
Bon, ben au detail pres que le fichier d'origine sera sauve comme <nom_original>.old, ca peut s'ecrire en une seule ligne:
fait perldoc perlrun ou man perlrun ou va voir la doc en francais a http://www.enstimac.fr/Perl/DocFr.html pour les explications sur les options -i -p et -e
sinon la substitution expliquee (elle agit sur $_, qui contient la ligne courante): s{;? # un ; optionel (pour eviter de le dupliquer) ( # on commence a capturer dans $1 s* # des espaces (0 ou plus) ($|//) # la fin de ligne ($) ou // ) # fin de la capture } {;$1}x # on remplace par la chaine capturee, pour remettre les # espaces et/ou // # l'option x permet de commenter les expressions
# regulieres
de meme if( m{^#declare}) matche #declare en debut de ligne (^)
C'est plus clair?
-- Michel Rodriguez Perl & XML http://www.xmltwig.com
Salut,
Bon, ben au detail pres que le fichier d'origine sera sauve comme
<nom_original>.old, ca peut s'ecrire en une seule ligne:
fait perldoc perlrun ou man perlrun ou va voir la doc en francais a
http://www.enstimac.fr/Perl/DocFr.html pour les explications sur les
options -i -p et -e
sinon la substitution expliquee (elle agit sur $_, qui contient la ligne
courante):
s{;? # un ; optionel (pour eviter de le dupliquer)
( # on commence a capturer dans $1
s* # des espaces (0 ou plus)
($|//) # la fin de ligne ($) ou //
) # fin de la capture
}
{;$1}x # on remplace par la chaine capturee, pour remettre les
# espaces et/ou //
# l'option x permet de commenter les expressions
# regulieres
de meme if( m{^#declare}) matche #declare en debut de ligne (^)
C'est plus clair?
--
Michel Rodriguez
Perl & XML
http://www.xmltwig.com
fait perldoc perlrun ou man perlrun ou va voir la doc en francais a http://www.enstimac.fr/Perl/DocFr.html pour les explications sur les options -i -p et -e
sinon la substitution expliquee (elle agit sur $_, qui contient la ligne courante): s{;? # un ; optionel (pour eviter de le dupliquer) ( # on commence a capturer dans $1 s* # des espaces (0 ou plus) ($|//) # la fin de ligne ($) ou // ) # fin de la capture } {;$1}x # on remplace par la chaine capturee, pour remettre les # espaces et/ou // # l'option x permet de commenter les expressions
# regulieres
de meme if( m{^#declare}) matche #declare en debut de ligne (^)
C'est plus clair?
-- Michel Rodriguez Perl & XML http://www.xmltwig.com