Ipsissima verba Debian User:
> On Friday 26 March 2004 18:12, "Sergio Ruiz P�rez - aladeweb.com" wrote:
> intenta esto
> para buscar texto:
> grep -n texto_a_buscar *

Y si usas GNU grep, grep -r se mete en los directorios.  Es pr�ctico,
para evitarte un find . -type f | xargs grep -r, o algo as�.

> para modificar texto
> for i in *
> do
>         echo "Modificando texto $i"
>          cat $i | sed "s/texto_viejo/texto_nuevo/g" > $i
> done

Eso tiene un problema muy grave: el archivo que est� leyendo cat es
sobreescrito por la redirecci�n final incluso antes de arrancar el
proceso, con lo cual terminar�s con una serie de archivos corruptos, o
vac�os.

Sugiero reemplazar ese pipeline por:

 cat "$i" | sed s/viejo/nuevo/g > "$i.$$" && mv "$i.$$" "$i"

O, alternativamente, botar el script sh por completo y usar s�lo sed:

 sed -i s/viejo/nuevo/g *

O, si hace falta descender en directorios:

 find . -type f | xargs sed -i s/viejo/nuevo/g

(Este �ltimo encantamiento tendr� problemas si hay archivos cuyo
nombre contiene espacios, comillas u otros car�cteres reservados por
el shell; en tal caso, necesitas usar la opci�n -exec de find, lo cual
ser� un poco m�s lento.  Ve los manuales.)

 -CR

-- 
Ceterum censeo: SCO delenda est.

Responder a