Téléchargement
illégal
Posez votre question Signaler

Sed en sortie sur fichier identique [Résolu]

anloanm 3Messages postés 5 février 2008Date d'inscription 16 mars 2010Dernière intervention - Dernière réponse le 6 févr. 2008 à 11:29
Bonjour, j'ai une commande basique de sed pour Unix :
sed 's/MotSource/MotDestination/g' infile > outfile
le problème est que je voudrais que la modification se retrouve sur le même fichier bien entendue.
ex: sed 's/toto/titi/g' michel.txt > michel.txt
chaque fois fois je me retrouve avec un fichier vide.
Merci beaucoup pour toute aide.
PS : déjà essayé les astuces de commentcamarche et ailleurs + livres
Lire la suite 

Sed en sortie sur fichier identique »

7 réponses
Réponse
+1
moins plus
Salut,

Il te faut obligatoirement passer par un fichier temporaire :
sed 's/toto/titi/g' < michel.txt > michel.tmp
mv michel.tmp  michel.txt
à moins d'avoir une version de "sed" supérieur à la 4.0.5 et bénéficier du switch "-i" (in-place), qui comme son nom l'indique modifie le fichier d'entrée "sur place" :
sed -i.BAK 's/toto/titi/g'  michel.txt
L'extension ".BAK" est facultative, elle permet de faire une sauvegarde de l'original...

;-))
Ajouter un commentaire
Réponse
+1
moins plus
Bien

J'avais donc :

sed '/COMPTAB/ s/Manual/Auto/' < dede.txt > dede.tmp && mv dede.tmp dede.txt

et maintenant :

fic=$(cat dede.txt);echo "$fic" | sed '/COMPTAB/ s/Manual/Auto/' > dede.txt

les deux font la même chose mais l'approche est différente.

Merci beaucoup

anloanm
jipicy- 6 févr. 2008 à 11:29
Merci ;-))
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

C'est exactement ce qu'il me fallait :

sed 's/toto/titi/g' < michel.txt > michel.tmp | mv michel.tmp michel.txt

Merci beaucoup pour ton aide rapide et efficace.

anloanm
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Il te faut obligatoirement passer par un fichier temporaire :
t'en es sûr ;-))
root@debian:~# cat fichier.txt
titi
titi
root@debian:~# fic=$(cat fichier.txt);echo "$fic" | sed 's/titi/toto/' > fichier.txt
root@debian:~# cat fichier.txt
toto
toto
root@debian:~# 
jipicy- 5 févr. 2008 à 11:14
Hi,

Voui j'en suis sûr, enfin moins maintenant espèce de faux perlien à la noix ;-)))
lami20j- 5 févr. 2008 à 11:27
;-)
Ajouter un commentaire
Ce document intitulé « sed en sortie sur fichier identique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?