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: 
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)




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)




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 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 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