Opérations sur chaines dans un fichier

Opérations sur chaines dans un fichier - Shell/Batch - Programmation

Marsh Posté le 08-06-2009 à 19:44:47    

Bonjour,
J'ai un fichier 1 où j'ai par exemple: mot1 mot2 mot3
Je souhaite faire un traitement sur un fichier 2 où je souhaite:
- remplacer mot1 par UnAutreMot dans la chaine: "salut... mot1 ... toto"
- supprimer les lignes qui contiennent: "bonjour... mot2... au revoir" et "bonjour... mot3... coucou"
les chaines entourant mot2 et mot3 peuvent etre differentes.
Avez-vous une idée de comment le faire? j'ai essayé d'utiliser awk ou sed mais j'ai pas su comment !
 
Voici un exemple:
 
fichier AVANT:
salut... mot1 ... toto
bonjour... mot2... au revoir
bonjour... mot3... coucou"
 
fichier APRES:
salut... UnAutreMot ... toto
 
 
mot1, mot2 et mot3 doivent etre lus d'un autre fichier
 
Merci pour votre aide

Reply

Marsh Posté le 08-06-2009 à 19:44:47   

Reply

Marsh Posté le 08-06-2009 à 20:21:06    

C'est pour Bash, Cmd, Playstation 3?


Message édité par ngkreator le 08-06-2009 à 20:21:52
Reply

Marsh Posté le 08-06-2009 à 21:32:34    

linux, j'ai essayé sed ou awk mais j'ai pas pu le faire

Reply

Marsh Posté le 09-06-2009 à 16:55:39    

ca se fait en 1 commande:
 

Code :
  1. sed "s/mot1/UnAutreMot/g" fichier2 | grep -v mot2 | grep -v fichier2

 
 
NB: j'ai pas cherché à mettre un seul grep au cas ou il y aurait des diff entre le gnu sed et d'autres versions, etc...

Reply

Sujets relatifs:

Leave a Replay

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