Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1210 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  traitement de fichier

 

Sujet(s) à lire :
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

traitement de fichier

n°1408746
salim81
Posté le 18-07-2006 à 17:36:27  profilanswer
 

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

mood
Publicité
Posté le 18-07-2006 à 17:36:27  profilanswer
 

n°1413716
Aricoh
gentil mais fo po pousser
Posté le 26-07-2006 à 11:47:15  profilanswer
 

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
n°1413729
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-07-2006 à 11:54:02  profilanswer
 

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
n°1413730
Aricoh
gentil mais fo po pousser
Posté le 26-07-2006 à 11:55:28  profilanswer
 

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
n°1413733
Elmoricq
Modérateur
Posté le 26-07-2006 à 12:01:16  profilanswer
 

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]

n°1413741
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-07-2006 à 12:19:50  profilanswer
 

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]  

n°1413746
Aricoh
gentil mais fo po pousser
Posté le 26-07-2006 à 12:25:36  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  traitement de fichier

 

Sujets relatifs
[SHELL BATCH] Aide sur traitement de fichier de log[Java et XML] Traitement d'un fichier XML avec JAVA
Traitement d'un fichier dans BDD MysqlTraitement élaboré d'un fichier texte
Traitement d'un fichier[Shell] Traitement de fichier - chaine de caractères
traitement selon le nom du fichiertraitement fichier ZIP
Récupération du contenu d'un fichier et traitementinterface et traitement données fichier
Plus de sujets relatifs à : traitement de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR