OVH Cloud OVH Cloud

[newbie]insertion en fin de ligne

13 réponses
Avatar
Philippe Rousselot
bonjour,

je veux ajouter du texte en début et fin de ligne

#!/usr/bin/perl -w
use strict;
my $file = $ARGV[0];
my $table = $ARGV[1];
my $var1='INSERT INTO '.$table.' values (';
my $var2=') ;';
open(FILE,$file);
while(<FILE>) {

$_ =~ s/^/$var1/ig ;
$_ =~ s/$/$var2/ig ;
print "$_";
}
close(FILE);

pour le début, pas de probleme. Par contre $var2 s'ajoute en début et non
fin de ligne.

merci de votre aide éclairée

Amazilia

10 réponses

1 2
Avatar
GERBIER Eric
Philippe Rousselot wrote:
bonjour,

je veux ajouter du texte en début et fin de ligne


$_ =~ s/$/$var2/ig ;

pour le début, pas de probleme. Par contre $var2 s'ajoute en début et non
fin de ligne.


$_ .= $var2

Avatar
Jean-Philippe Caruana
bonjour,

je veux ajouter du texte en début et fin de ligne

while(<FILE>) {

$_ =~ s/^/$var1/ig ;
$_ =~ s/$/$var2/ig ;


# je ferais simplement
my $ligne = $var1 . $_ . $var2;
print $ligne;

print "$_";
}
close(FILE);



--
jpc
http://www.enstimac.fr/~caruana/

Avatar
Rue des Prairies
bonjour,

je veux ajouter du texte en début et fin de ligne

while(<FILE>) {


$_ =~ s/^/$var1/ig ;
$_ =~ s/$/$var2/ig ;
print "$_";
}
close(FILE);

pour le début, pas de probleme. Par contre $var2 s'ajoute en début et non
fin de ligne.

merci de votre aide éclairée

Amazilia
Bonjour,


$_ = $var1 . $_ . $var2;


Olivier.


Avatar
Philippe Rousselot
Rue des Prairies wrote:

bonjour,

je veux ajouter du texte en début et fin de ligne

while(<FILE>) {


$_ =~ s/^/$var1/ig ;
$_ =~ s/$/$var2/ig ;
print "$_";
}
close(FILE);

pour le début, pas de probleme. Par contre $var2 s'ajoute en début et non
fin de ligne.

merci de votre aide éclairée

Amazilia
Bonjour,


$_ = $var1 . $_ . $var2;


Olivier.


merci à tous,

disons que j'étais parti de vi pour aller vers perl, donc j'avais gardé la
même formule. et puis pourquoi faire simple quand on peut faire
compliqué ;-)

par contre cela ne change rien var2 se met en début de ligne suivante.

j'ai essayé :
$_ = $var1.$_ ;
chomp $_ ;
$_ .=$var2 ;
print "$_n";

var2 se met en début de ligne et ecrase le début de la ligne.



maintenant je croyais que $ permettait d'écrire en fin de ligne ?

philippe



Avatar
Rue des Prairies
Rue des Prairies wrote:



bonjour,

je veux ajouter du texte en début et fin de ligne


while(<FILE>) {


$_ =~ s/^/$var1/ig ;
$_ =~ s/$/$var2/ig ;
print "$_";
}
close(FILE);

pour le début, pas de probleme. Par contre $var2 s'ajoute en début et non
fin de ligne.

merci de votre aide éclairée

Amazilia


Bonjour,

$_ = $var1 . $_ . $var2;


Olivier.



merci à tous,

disons que j'étais parti de vi pour aller vers perl, donc j'avais gardé la
même formule. et puis pourquoi faire simple quand on peut faire
compliqué ;-)

par contre cela ne change rien var2 se met en début de ligne suivante.

j'ai essayé :
$_ = $var1.$_ ;
chomp $_ ;
$_ .=$var2 ;
print "$_n";

var2 se met en début de ligne et ecrase le début de la ligne.



maintenant je croyais que $ permettait d'écrire en fin de ligne ?

philippe


while(<FILE>) {
chomp;
$_ = $var1 . $_ . $var2;
}

Olivier.




Avatar
Jean-Philippe Caruana
j'ai essayé :
$_ = $var1.$_ ;
chomp $_ ;
$_ .=$var2 ;
print "$_n";

var2 se met en début de ligne et ecrase le début de la ligne.


et ca ?

chomp;
$_ = $var1 . $_ . $var2 . "n";

ou bien tu fais un coup de s/n//g avant ta concat ?

--
jpc
http://www.enstimac.fr/~caruana/

Avatar
Philippe Rousselot
Rue des Prairies wrote:


j'ai essayé :
$_ = $var1.$_ ;
chomp $_ ;
$_ .=$var2 ;
print "$_n";

var2 se met en début de ligne et ecrase le début de la ligne.



maintenant je croyais que $ permettait d'écrire en fin de ligne ?

philippe


while(<FILE>) {
chomp;
$_ = $var1 . $_ . $var2;
}

pareil ...


Philippe


Avatar
Jack
Le 16/02/2005 11:57, :
Rue des Prairies wrote:



j'ai essayé :
$_ = $var1.$_ ;
chomp $_ ;
$_ .=$var2 ;
print "$_n";

var2 se met en début de ligne et ecrase le début de la ligne.



maintenant je croyais que $ permettait d'écrire en fin de ligne ?

philippe


while(<FILE>) {
chomp;
$_ = $var1 . $_ . $var2;
}



pareil ...



$_ =~s/^(.*)$/$var1$1$var2/;



Avatar
Rue des Prairies
Rue des Prairies wrote:


while(<FILE>) {
chomp;
$_ = $var1 . $_ . $var2;
}



pareil ...

Philippe


Montre-nous un extrait de ton fichier.


Avatar
Philippe Rousselot
Rue des Prairies wrote:

Rue des Prairies wrote:


while(<FILE>) {
chomp;
$_ = $var1 . $_ . $var2;
}



pareil ...

Philippe


Montre-nous un extrait de ton fichier.


rpm -qa |grep perl donne perl-5.8.5-3.1.101mdk

ofichier original

121673,'974',,4,'','','','','','','',,,0
121674,'91',,32,'','','','','','','',,,0
121675,'93',,32,'','','','','','','',,,0


script

#!/usr/bin/perl -w
use strict;
my $file = $ARGV[0];
my $table = $ARGV[1];
my $var1='INSERT INTO '.$table.' values (';
my $var2=') ;';
open(FILE,$file);
while(<FILE>) {
chomp ;
$_ = $var1.$_.$var2 ;
print "$_n";
}
close(FILE);

fichier dest

) ;ERT INTO FICHE values (121673,'974',,4,'','','','','','','',,,0
) ;ERT INTO FICHE values (121674,'91',,32,'','','','','','','',,,0
) ;ERT INTO FICHE values (121675,'93',,32,'','','','','','','',,,0



1 2