Ayuda con cat, grep, more o lo que sea (bash)
Daniel Serpell
daniel en atmlab.utfsm.cl
Mar Jun 1 19:16:22 CLT 2004
El Tue, Jun 01, 2004 at 06:39:11PM -0400, Alvaro Herrera escribio:
> On Tue, Jun 01, 2004 at 05:49:02PM -0400, Daniel Serpell wrote:
>
> > Es posible hacerlo más eficiente con "dd", pero se
> > complica mucho la línea de comandos :-)
>
> Hum, y como harias eso? No veo como decirle a dd que separe por lineas.
>
Hice algunas pruebas, pero resultó más lento:
dd if=<nombre_de_archivo> cbs=256 conv=block obs=256 | dd bs=256 cbs=256 conv=unblock skip=<línea_a_seleccionar> count=1
El primer "dd" transforma el archivo a campos de largo fijo,
el segundo selecciona un campo.
> Pero con awk es mucho mas facil:
>
> LINE=200
> awk "{ if (NR == $LINE) { print \$0; exit } else { print \$0 } }" archivo
>
Si, pero se tipea demasiado :-)
Mediciones de tiempo, archivo de 25.5MB, 551325 líneas, extraer la
línea 550000, promedio de 4 corridas
head/tail : 0.35 segundos
awk : 0.55 segundos
sed : 0.34 segundos
dd : 3.50 segundos
Como dato, wc -l demora 0.15 segundos.
Daniel.
Más información sobre la lista de distribución Linux