traitement de fichier

traitement de fichier - Perl - Programmation

Marsh Posté le 18-07-2006 à 17:36:27    

bonjour!
j'ai un script perl qui recupere les lignes d'un fichier:
 
#!/usr/bin/perl -w
open(PARSE,'/tmp/FILETOP') or err_trap(" Files not found" );
while ( $line=<PARSE> ) {
       ## parse each xml file
                print "NE Name :$line";
       if ( $line=<PARSE> ) {
                #print "NE $line";
       }
       if ( $line=<PARSE> ) {
               # print "NE Type $line";
                @champ = split(/#/,$line);
                $result = $champ[0];
                print "NE Type :$result";
       }
       if ( $line=<PARSE> ) {
                print "\nNE RELEASE :$line";
       }
                                                                                                                             
}
close(PARSE);
mon probleme c'est que je veux tester si $result="text1" je veux le remplacer par "texte2" et j'affiche $result.
svp quelqu'un  pourra m'aider?
merci

Reply

Marsh Posté le 18-07-2006 à 17:36:27   

Reply

Marsh Posté le 26-07-2006 à 11:47:15    

Bon déjà, je met ton code avec la présentation comme y faut
 

Code :
  1. #!/usr/bin/perl -w
  2. open(PARSE,'/tmp/FILETOP') or err_trap(" Files not found" );
  3. while ( $line=<PARSE> ) {
  4.        ## parse each xml file
  5.                 print "NE Name :$line";
  6.        if ( $line=<PARSE> ) {
  7.                 #print "NE $line";
  8.        }
  9.        if ( $line=<PARSE> ) {
  10.                # print "NE Type $line";
  11.                 @champ = split(/#/,$line);
  12.                 $result = $champ[0];
  13.                 print "NE Type :$result";
  14.        }
  15.        if ( $line=<PARSE> ) {
  16.                 print "\nNE RELEASE :$line";
  17.        }
  18. }
  19. close(PARSE);


 
Et qu'est-ce que c'est que ces lignes bizarres là ? Y a des if ( $line=<PARSE> ) partout dans ton code. Je me demande si tu sais bien à quoi ça sert ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 26-07-2006 à 11:54:02    

euh ... franchement t'as absolument besoin d'un script perl pour faire ça??? Surtout que celui-là fait n'importe quoi...
un petit:

Code :
  1. sed -e "s/text1/texte2" /tmp/FILETOP


et on en parle plus [:spamafote]


Message édité par anapajari le 26-07-2006 à 11:54:15
Reply

Marsh Posté le 26-07-2006 à 11:55:28    

Tout dépend dans quel cadre il doit bosser ce code.
 
Si c'est un novice Perl, mieux vaudrait l'aider sur une soluce en Perl que passer par Sed.
 
Même si comme le dit la pub, "Sed c'est bien"  :D


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 26-07-2006 à 12:01:16    

Aricoh a écrit :

Même si comme le dit la pub, "Sed c'est dien"  :D


[:aloy]
 
Et si salim81 tient réellement à le faire en PERL, un simple :

perl -pi -e 's/text1/text2/g' /tmp/FILETOP


fera l'affaire. [:ddr555]

Reply

Marsh Posté le 26-07-2006 à 12:19:50    

Aricoh a écrit :

Tout dépend dans quel cadre il doit bosser ce code.
Si c'est un novice Perl, mieux vaudrait l'aider sur une soluce en Perl que passer par Sed.


vu le code je ne doute pas qu'il soit novice perl... Mais avant de l'aider sur une solution, il faut a mon avis qu'il relise 2/3 tutorials sur la lecture des fichiers en perl [:spamafote]
 

Elmoricq a écrit :

Et si salim81 tient réellement à le faire en PERL, un simple :

perl -pi -e 's/text1/text2/g' /tmp/FILETOP


fera l'affaire. [:ddr555]


 [:grinking]  

Reply

Marsh Posté le 26-07-2006 à 12:25:36    

Elmoricq a écrit :

Et si salim81 tient réellement à le faire en PERL, un simple :

perl -pi -e 's/text1/text2/g' /tmp/FILETOP


fera l'affaire. [:ddr555]


 
Ca marche aussi si on le fait comme ça ?
 

perl -3.14 -e 's/text1/text2/g' /tmp/FILETOP


 
 [:yaisse2]  


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed