Sed en sortie sur fichier identique
Résolu
anloanm
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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
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
A voir également:
- Sed informatique
- Le code ascii en informatique - Guide
- Jargon informatique - Télécharger - Bureautique
- Que veut dire url en informatique - Guide
- Souris informatique - Guide
- Cpu en informatique - Guide
4 réponses
Salut,
Il te faut obligatoirement passer par un fichier temporaire :
;-))
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.txtL'extension ".BAK" est facultative, elle permet de faire une sauvegarde de l'original...
;-))
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
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
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
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