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

Re: seleccionar lineas en un fichero de texto



On Thu, 19 Apr 2001, Miguel Rodríguez Penabad wrote:

> Hola a todos,
> tengo un(os) ficheros de texto para importar a una BD, y algunas de las
> lineas me dan problemas. Me gustaría poder imprimirlas o redirigirlas a
> un fichero para ver que demonios pasa con ellas, pero hasta ahora lo
> unico que mi neurona me ha dicho para seleccionar la linea L del fichero
> es 
> head -L fichero | tail -1

Creo que es 

head -n fichero | tail -1

> Y la verdad, con ficheros de 2 millones de filas, tarda un mundo.
> ¿A alguien se le ocurre alguna forma de seleccionar alguna fila por
> numero?
> He pensado en awk y controlar el NR, pero me da que va a ser lento
> igual...
> 
> Gracias a todos
> 	Miguel

En un fichero de texto normalito con lineas de longitud variable
tendrás que leer todos los caracteres hasta encontrar la información
que buscas. Posicionarse en una determinada posición de un fichero
por número de caracteres es inmediato (función seek() de C) pero
si lo que quieres es posicionarte en una línea determinada tienes que 
leer todos los caracteres hasta esa línea. Todo depende de la velocidad 
de lectura del dispositivo donde esté almacenado. Podría venirte bien
usar un raid.

Si tienes que hacer varias veces eso con el mismo fichero contruyete
unos indices del tipo <línea> --> <posicion> cada cien líneas por ejemplo,
pero creo por lo que dices que no es tu caso.

Si alguna vez quieres usar un salto con seek desde un shell script usa
dd con la opción seek=bloques.



> -- 
> =========================================================================
> Miguel Rodriguez Penabad		penabad@udc.es
> Laboratorio de Bases de Datos		http://emilia.dc.fi.udc.es/labBD
> Facultade de Informática		Universidade da Coruña (Spain)
> =========================================================================
> 
> 
> --  
> Unsubscribe?  mail -s unsubscribe debian-user-spanish-request@lists.debian.org < /dev/null
> 


Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\      Ciberdroide Informática (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
	 _|0 0|_                                                    
+-oOOO--(___o___)--OOOo----------------------------------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com  |  
|  . . . . . . . . . .                                                     | 
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+




Reply to: