Modification de chaîne de caractères dans un fichier

Modification de chaîne de caractères dans un fichier - Shell/Batch - Programmation

Marsh Posté le 26-11-2010 à 15:23:13    

Bonjour,
 
Je souhaiterais modifier une chaîne de caractère particulière dans un fichier.
Voici un exemple du fichier :
 

Code :
  1. #EXTINF:0,foo
  2. http://foobar
  3. #EXTINF:0,bar
  4. http://barfoo


 
Je voudrais modifier la ligne http://foobar qui suit foo.
 
J'ai essayé avec sed :
sed -e s/#EXTINF:0,foo\n.*\n/#EXTINF:0,foo\nhuhu\n/ mon_fichier.txt
mais sans résultat...
 
Une idée ?


---------------
Be the one with the flames.
Reply

Marsh Posté le 26-11-2010 à 15:23:13   

Reply

Marsh Posté le 26-11-2010 à 15:42:49    

Hé ho, on va pas faire ton TP à toi non plus hein [:_pluto_]


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 26-11-2010 à 15:43:21    

 

ASV ?


Message édité par el_barbone le 26-11-2010 à 15:43:29

---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
Reply

Marsh Posté le 26-11-2010 à 15:48:06    

Sinon sed et le multi-ligne c'est pas top :o
T'es obligé de le faire en bash ou ton prof accepte aussi les vrais langages comme le Python ou le Perl ? :o


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 26-11-2010 à 15:49:13    

Et mon idée alors :fou:
[:thalis]
[:d_omi]
 
Tu vas le payer cher lundi [:ofou]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 26-11-2010 à 15:51:07    

e_esprit a écrit :

Sinon sed et le multi-ligne c'est pas top :o
T'es obligé de le faire en bash ou ton prof accepte aussi les vrais langages comme le Python ou le Perl ? :o


En fait c'est dans du PHP, mais ça revient à peu près au même, non ?


---------------
Be the one with the flames.
Reply

Marsh Posté le 26-11-2010 à 15:51:34    

wedgeant a écrit :

Et mon idée alors :fou:
[:thalis]
[:d_omi]
 
Tu vas le payer cher lundi [:ofou]


Oui l'histoire du flag, mais je vois pas trop en fait :D


---------------
Be the one with the flames.
Reply

Marsh Posté le 26-11-2010 à 15:59:36    

Riot a écrit :

Oui l'histoire du flag, mais je vois pas trop en fait :D


En perl (par exemple), tu boucles sur chaque ligne de ton fichier:

Code :
  1. foreach(@fichier) {
  2.     if(m/#EXTINF:0,foo/;) { $flag=TRUE; }
  3.     if($flag -a ! m/#EXTINF:0,foo/) { s/.*/montrucenplume/; $flag=FALSE; }
  4.     print;
  5. }


Après, j'ai codé ça en 30s, j'ai pas vérifié la syntaxe et tout ça, mais l'idée est là :jap:


Message édité par wedgeant le 26-11-2010 à 16:01:18

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 26-11-2010 à 16:09:47    

Riot a écrit :


En fait c'est dans du PHP, mais ça revient à peu près au même, non ?


Ben non, du coup tu peux parser ton fichier à la main facilement en tenant compte
de 2 lignes à la fois.
 

Code :
  1. Lire 2 lignes
  2. Si la première ligne matche => modif de la suivante
  3. Sinon la seconde devient la première et tu en lit une nouvelle
  4. GOTO 2


 
C'est du code en AlgoBASIC, je sais pas si t'as le bon compilo sur ta machine :o


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Sujets relatifs:

Leave a Replay

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