Re: Remplacement d'une chaine ds un fichier
On Sun, Jun 08, 2003 at 11:53:49AM +0200, jean-michel OLTRA wrote:
> Le dimanche 08 juin 2003, Loick.B a écrit...
> bonjour,
>
>
> > "sed -e s/avant/apres/ tonfichier > tonfichiers.new"
> sed -e s/avant/apres/ tonfichier > tampon; tampon > tonfichier; rm -f tampon
^^^
cat
> Sinon l'idée vim est très bonne.
vim fichier -c "%s/avant/apres/g" -c ":wq"
En fait, il faudrait écrire une commande Unix qui:
- lise stdin jusqu'à la fin
- ensuite seulement, écrive tout sur stdout.
On pourrait l'appeler sbuf (stream buffer), et ça
permettrait de faire:
cat fichier | sed "s/avant/apres/" | sbuf > fichier
Peut-être qu'une telle command existe déjà, mais personne ne
le connait? (Pas à mon avis, vu que la commande implique que
la totalité du fichier va devoir être stocké en RAM, ce qui
va à l'encontre des principes originaux d'Unix...
Incidement, écrire dans un nouveau fichier puis le renommer
est sans doute plus efficace que cette solution pour tout
stream de taille importante).
/Y
--
Marbles should be kept together.
Reply to: