question sur sed - Linux et OS Alternatifs
Marsh Posté le 26-08-2002 à 14:42:54
sed "s/toto/tata/g" toto > tmptoto && mv -f tmptoto toto
Marsh Posté le 26-08-2002 à 14:46:08
justement c ca que j'aimerais éviter, surtout que bon, si y'a une option ou une solution, je pense que c ce que fera sed 
 
le probleme , c que j'essaye de combiner ca ds une commande find 
 
find . -maxdepth 1 -type f -exec sed -e s/toto/tata/g {} \;   
 
et le pb c que je c pas tro comment bosser avec des temporaires ds mon find ...  
 
Marsh Posté le 26-08-2002 à 14:47:00
je me lance la dedans, alors, si y'a pas d'options ni d'autre solution, merci 
Marsh Posté le 26-08-2002 à 14:49:26
Moi même j'ai jamais trouvé de solution. 
Lire un fichier, le piper  vers une autre commande, puis rediriger la sortie vers ce même fichier, ça résulte en un fichier vide
 vers une autre commande, puis rediriger la sortie vers ce même fichier, ça résulte en un fichier vide   
 
Marsh Posté le 26-08-2002 à 15:05:13
le tee fonctionne comme la redirection ds le fichier ? 
parce que il parait que c pas conseillé du tout de faire un 
 
cat toto | sed s/toto/tata/g > toto 
 
est ce que tee fonctionne pareil ?
Marsh Posté le 26-08-2002 à 15:06:16
essaie ta commande et essaie avec tee.  
 
sinon je viens de trouver un truc de dingue :  
 
 find . -type f -print | while read file; do vi  $file > /dev/null 2>&1 <<! (faire enter ici ) 
> :%s,tata,titi,g 
> :wq 
> ! 
> done 
 
 
http://www.unixreview.com/document [...] /0103h.htm
Marsh Posté le 26-08-2002 à 15:14:05
| superX a écrit a écrit  : essaie ta commande et essaie avec tee. | 
 
 
les 2 fonctionnent c clair, mais je veux pas utiliser ma commande de cat toto ... >  toto  juste car c déconseillé (écriturre ds un fichier ouvert) 
 
tee c clair, ca marche, mais comment il fonctionne ... pff j'en c rien 
 
sinon c clair que là ton vi, oui ca le fait carrément .. j'essaye ca de suite 
Marsh Posté le 26-08-2002 à 18:32:02
Le cat toto | sed -e s/titi/tata/g > toto ce n'est pas seulement déconseillé, ça ne marche pas tout simplement pas. Tu peux obtenir ce que tu veux sur de petits fichiers, mais avec un fichier plus gros ça finira toujours par foirer.
Marsh Posté le 26-08-2002 à 14:39:57
alors voilà, mon probleme,
exemple, j'ai un fichier /tmp/toto avec comme contenu "toto"
si je fais un
sed -e s/toto/tata/g toto
il me ressort tata en sortie sans probleme
ce que je voudrais, c'est non seulement qu'il me le mette en sortie, mais qu'en plus il modofie le fichier, comme le ferait avec :
cat /tmp/toto | sed -e s/toto/tata/g > /tmp/toto
j'ai rien trouvé ds le man de sed
merci de votre aide
Message édité par korny le 26-08-2002 à 14:40:23