[eside-ghost] cambiar una palabra en todos los archivos de una
web?
Pablo Garaizar Sagarminaga
garaizar en eside.deusto.es
Mie Mayo 2 11:53:42 CEST 2007
Aupa!
El Wed, 2 May 2007 11:24:52 +0200
"Alex Ortiz de Guinea" <bloowitt en gmail.com> comentaba:
> No habría que hacer algo del pelo
> for i in $directorio/*.html
> do
> sed 's/alli/masalla/g' $i > $newdir/'basename $i'
> done
> Poor ejemplo¿? (Esto es gambada fijo, pero da pie a que Txipi nos
> ilumine :P
Sí, habría que hacer algo así. De hecho tu solución está bastante bien
salvo que basename habría que llamarlo con apóstrofes en lugar de
comillas.
Para cambiarlo sin utilizar otro directorio, hay que usar ficheros
temporales o te cargas el fichero (que algo sea entrada y salida a la
vez cuando hay procesos destructivos por medio, no es muy recomendable):
for F in *.html:
do
sed -e "s/alli/masalla/g" "$F" > kk
mv kk "$F"
done
(si se va a ejecutar en un script, podemos llamar al fichero temporal
kk.$$ para evitar problemas de scripts concurrentes)
--
Pablo Garaizar Sagarminaga
ONTE (Oficina de Nuevas Tecnologías y Educación)
Universidad de Deusto
Avda. de las Universidades 24
48007 Bilbao - Spain
Phone: +34-94-4139000 Ext 2980
Fax: +34-94-4139101
Web: http://onte.eside.deusto.es
Más información sobre la lista de distribución eside-ghost