[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script para arreglo de buzones corruptos



Hola

Muchas gracias por tu ayuda. aunque prefiero no tener que hacerlo en C.
Al final con el sed no tengo que mover grandes ficheros, solo al pegarlos al 
final.
Ya lo tengo hecho, pero tengo un pequeño problema de eficiencia:
linea_from=`grep -n "From " $1|sed -n 1p|cut -d: -f1`

Me encuentra la primera linea que tiene el from, pero el problema es que el 
grep por defecto busca todas las ocurrencias y si el fichero es de 100 
megas...

He estado probando con grep -q que segun el man se para en la primera 
ocurrencia, que es la que queremos. pero no me saca nada por pantalla.

Alguna idea de como usar el grep para que se pare en la primera ocurrencia?

aqui esta el script por si a alguno os sirve:
###script para arreglar buzones
#########################
#obtenemos las variables necesarias
linea_from=`grep -n "From " $1|sed -n 1p|cut -d: -f1`
####arreglamos la linea de From
sed -n "$linea_from","$linea_from"p $1 |sed s/.*From// |sed  's/^/From/' > 
buzon_arreglado
sed 1,13d $1 >> buzon_arreglado

Muchas Gracias.

Un saludo

						Juan

Cuenta la leyenda que el Sábado, 24 de Mayo de 2003 01:25, Juan Ángel 
escribió:
> Hola!,
> pues ... no sé si lo más rápido sería con el sed.
> Resulta que tienes que quitarle un "cacho" del principio a unos archivos.
> Pues creo que la forma más rápida de hacerlo (en cuanto a tiempo invertido)
> sería con el sed. Si no, la forma más eficiente sería que te hicieras un
> programa en C, usando mmap. El problema está en que VFS tiene en cuenta
> siempre donde comienza un archivo, o sea, que realmente una tonteria como
> quitarle un byte al principio del archivo, casi quiere decir recopiar el
> archivo entero (sin el casi, aunque dependerá del sistema de archivos por
> debajo del VFS). Bueno, esta es mi opinión, que tampoco es que sea una gran
> cosa, pero es que realmente no me acuerdo de ninguna otra llamada al
> sistema que haga algo de eso, lo siento :(
> Un saludo,
> --
>          Juan Ángel
> PGP key on pgp.rediris.es (8FAF18B7)
> or search on http://www.rediris.es/cert/servicios/keyserver/

-- 
Usuario Linux Registrado: 257202
http://perso.wanadoo.es/elsotanillo (en construccion)



Reply to: