[PLUTO-help] Info sed!

Mariano Cunietti mcunietti a enter.it
Ven 29 Ott 2004 14:41:58 CEST


> Domandina del giorno...
>
> $sed 's/uno/deu/g' xyz
>
> questo comando cambia tutte le parole "uno" in "due" del file "xyz"
> ma il problema che trovo è il seguente: la modifica effettuata non è
> permanete ossia ricevo in output il risultato desiderato ma solo su
> video, io vorrei cambiare tale stringa in modo che la modifica apportata
> in xyz sia permanente ed effettiva.
> Qualcuno mi può aiutare?

Ottima domanda, sono curioso di sentire anche io la risposta.
Il problema è scrivere su un file mentre lo stesso è aperto in lettura.

cat file1 | sed -e 's/uno/due/g' > file1  # ranza via tutto da file1

C'è un flag in sed('w') che consente di scrivere l'output anche su un file

sed -e 's/uno/due/gw file1' file1  # anche questo però ranza via tutto, INPUT=OUTPUT

La soluzione a cui ero arrivato io era una funzione che creava un file.tmp e poi lo rinominava, ma era ovviamente un workaround.
C'è qualcuno che ha una soluzione più elegante?
Ciau

Mariano








More information about the pluto-help mailing list