Re: OT: script en bash que busque cadenas de texto en ficheros... (SOLUCIONADO)

2004-03-25 Por tema Gorka Garay
al final lo he hecho con:

#!/bin/bash
for fichero in *
do
echo $fichero
sed 's/foo/bar/g' $fichero  ./nuevaVersion/$fichero
done


Muchisimas gracias a todos.


- Original Message - 
From: Miguel Rodríguez Penabad [EMAIL PROTECTED]
To: debian-user-spanish@lists.debian.org
Sent: Tuesday, March 23, 2004 7:18 PM
Subject: Re: OT: script en bash que busque cadenas de texto en ficheros...


On Tuesday 23 March 2004 19:37, SmasSive wrote:
 Ya le pones al final del comando el fichero que quieres modificar?

 Es decir:

 sed 's/foo/bar/g' fichero.txt


Pero el sed modifica el fichero.txt y manda la salida a la salida estándar.
Puedes redirigir la salida estándar y luego renombrar:

sed 's/foo/bar/g' fichero.txt  salida.txt  mv salida.txt fichero.txt

O lo puedes hacer de forma que renombre en el fichero, con vim, con perl...
Yo he probado el siguiente script, que cambia todos los mal por bien en
un
directorio:

#!/bin/bash
for fichero in /el/directorio/que/sea/*
do
perl -pi -e 's/mal/bien/g' $fichero
done

-- 

Miguel Rodriguez Penabad [EMAIL PROTECTED]
Laboratorio de Bases de Datos http://emilia.dc.fi.udc.es/labBD
Despacho 0.01  Tel. 981 167000 ext. 1333
Facultade de Informática Universidade da Coruña (Spain)




OT: script en bash que busque cadenas de texto en ficheros...

2004-03-23 Por tema Gorka Garay
Hola.

Si me ayudais con esto me alegrais el dia. He hecho algun script pero
simplemente llamando a otros programas con pipelines y cosas asi, pero nunca
con ficheros.

La idea es buscar una cadena de texto y reemplazarla por otra en los
ficheros que los contengan. Son como 84 ficheros y podria hacerse a mano,
pero asi de paso aprendo algo del problema. Ah! todos los ficheros estan en
el mismo directorio, con lo que no hace falta buscar cosas de entrada
recursiva en directorios y cosas asi.

No se por donde empezar y como he visto a menudo a gente hablando de
scripts... me he animado a preguntar.

Salu2 y gracias desde ya.



Re: OT: script en bash que busque cadenas de texto en ficheros...

2004-03-23 Por tema Ricardo - Eureka!
On Tue, Mar 23, 2004 at 06:47:11PM +0100, Gorka Garay wrote:
 Hola.
 
 Si me ayudais con esto me alegrais el dia. He hecho algun script pero
 simplemente llamando a otros programas con pipelines y cosas asi, pero nunca
 con ficheros.
 
 La idea es buscar una cadena de texto y reemplazarla por otra en los
 ficheros que los contengan. Son como 84 ficheros y podria hacerse a mano,
 pero asi de paso aprendo algo del problema. Ah! todos los ficheros estan en
 el mismo directorio, con lo que no hace falta buscar cosas de entrada
 recursiva en directorios y cosas asi.
 
 No se por donde empezar y como he visto a menudo a gente hablando de
 scripts... me he animado a preguntar.

man sed
o mejor aun
info sed


-- 
Ricardo A.Frydman 
Analista de Sistemas de Computación
http://www.eureka-linux.com.ar



pgpJYdqoVT91K.pgp
Description: PGP signature


Re: OT: script en bash que busque cadenas de texto en ficheros...

2004-03-23 Por tema Gorka Garay
muchas gracias por tu respuesta, creo que es lo que necesito, pero he
probado esto:


sed 's/foo/bar/g'

para cambiar foo por bar y el proceso se queda ahi parado ... y acabo
matandolo para probar con

sed 's/foo/bar/g'

y cuando le doy jobs, el proceso aparece como Stopped sin saber por
que...

se os ocurre algo al respecto? es normal? ah!, olvidaba decir que no hay
diferencias en los ficheros, se quedan igual...

muchas gracias



Re: OT: script en bash que busque cadenas de texto en ficheros...

2004-03-23 Por tema SmasSive
Ya le pones al final del comando el fichero que quieres modificar?

Es decir:

sed 's/foo/bar/g' fichero.txt

El Martes, 23 de Marzo de 2004 19:23, Gorka Garay escribió:
 muchas gracias por tu respuesta, creo que es lo que necesito, pero he
 probado esto:


 sed 's/foo/bar/g'

 para cambiar foo por bar y el proceso se queda ahi parado ... y acabo
 matandolo para probar con

 sed 's/foo/bar/g'

 y cuando le doy jobs, el proceso aparece como Stopped sin saber por
 que...

 se os ocurre algo al respecto? es normal? ah!, olvidaba decir que no hay
 diferencias en los ficheros, se quedan igual...

 muchas gracias



Re: OT: script en bash que busque cadenas de texto en ficheros...

2004-03-23 Por tema Miguel Rodríguez Penabad
On Tuesday 23 March 2004 19:37, SmasSive wrote:
 Ya le pones al final del comando el fichero que quieres modificar?

 Es decir:

 sed 's/foo/bar/g' fichero.txt


Pero el sed modifica el fichero.txt y manda la salida a la salida estándar.
Puedes redirigir la salida estándar y luego renombrar:

sed 's/foo/bar/g' fichero.txt  salida.txt  mv salida.txt fichero.txt

O lo puedes hacer de forma que renombre en el fichero, con vim, con perl...
Yo he probado el siguiente script, que cambia todos los mal por bien en un 
directorio:

#!/bin/bash
for fichero in /el/directorio/que/sea/*
do
perl -pi -e 's/mal/bien/g' $fichero
done

-- 

Miguel Rodriguez Penabad[EMAIL PROTECTED]
Laboratorio de Bases de Datos   http://emilia.dc.fi.udc.es/labBD
Despacho 0.01   Tel. 981 167000 ext. 1333
Facultade de InformáticaUniversidade da Coruña (Spain)