supprimer des mots dans des fichiers

supprimer des mots dans des fichiers - Shell/Batch - Programmation

Marsh Posté le 17-05-2005 à 15:51:40    

Bonjours,
 
je souhaite supprimer tout les import inutiles dans des fichiers java.  
pour cela j'ai commencé à faire un petit script shell qui parcour les fichiers java, recherche "import org.*;" et le supprime.  
 

Code :
  1. find . -name "*.java"  -exec sed "s/import org\.\*;//gp" {} >{} \;


 
voici ou j'en suis. mon probleme vient du faite que le sed ne touche pas au fichier d'origine. Je voudrais donc rediriger le resultat du sed dans le fichier courant (avec le >{} ). Mais je ne reussi qu'à creer un fichier {}. Car pour une raison obscure, si le premier {} est bien remplacé par le nom du fichier courant, le dernier ne l'est pas.
 
voila. si vous avez une idée pour corriger le tire, ou bien si vous connaissez une autre solution. je suis preneur.  
 
merci d'avance.  
 

Reply

Marsh Posté le 17-05-2005 à 15:51:40   

Reply

Marsh Posté le 17-05-2005 à 16:53:38    

bon j'ai fini par contourner le pb.  
ça doit etre solaris qui deconne.
 
j'ai creer un script shell et j'appel ce script dans mon find. affaire resolu :)

Reply

Marsh Posté le 18-05-2005 à 17:29:15    

Rediriger la sortie dans le fichier que tu es en train de lire, ca ne marche pas. Dans le meilleur (ou le pire) des cas ca marche si le fichier est petit... Autrement ca videra ton fichier.
 
sed a parfois une option -i qui permet d'editer le fichier "in place" (editer le fichier qui est lu).

Reply

Sujets relatifs:

Leave a Replay

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