[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: