Extraer la linea n de un texto usando Shell script

Dudas y comentarios sobre otros lenguajes de programación. Si algún lenguaje recibe suficientes preguntas le añadimos nueva categoría.
Responder
Mensaje
Autor
jvr42
Mensajes: 35
Registrado: 06/11/2012 7:43 pm
Ubicación: México

Extraer la linea n de un texto usando Shell script

#1 Mensaje por jvr42 » 05/02/2013 4:22 pm

Hola,

No sabia si era el lugar mas apriopado en el foro para publicar eso, pero queria que me ayudaran con un script usando Shell en linux toma como parámetro n y nombre de archivo. Imprime la línea n del archivo.

Por ejemplo,

Código: Seleccionar todo

$ ./miscript 30 Texto 
Estaba pensando que usando algo asi, pero no me funciona.

Código: Seleccionar todo

#!/bin/bash
count=0 
while read n archivo 
do     
   echo head -$n $archivo | tail -1
done < $2 
Tambien buscaba un scritp que imprimera la linea deseada y el numero.

Saludos,

Espero me puedan ayudar.

jvr42
Mensajes: 35
Registrado: 06/11/2012 7:43 pm
Ubicación: México

#2 Mensaje por jvr42 » 06/02/2013 2:19 pm

Despues de algunas horas de intentarloo y probar. Consegui hacer lo que buscaba.

Les dejo la linea de codigo que hace todo el trabajo. Me sorprendi que unos cuantos comandos puedieran hacer tanto.

Código: Seleccionar todo

#!/bin/bash
echo "`head -$1 $2 |tail -1`"
Para usarlo:

Código: Seleccionar todo

$ ./miscript 30 NombredeArchivo 
Saludos, seguire haciendo otros ejercicios de Shell Script :D

Avatar de Usuario
daltomi
Mensajes: 351
Registrado: 28/04/2007 7:29 pm
Ubicación: Argentina

#3 Mensaje por daltomi » 06/02/2013 6:29 pm

Buenas.

Existen otros comandos que puedes utilizar: awk y sed
Ejemplo con awk:

Código: Seleccionar todo

awk "NR==$1" "$2"
Ejemplo con sed:

Código: Seleccionar todo

sed -n $1{"P"} "$2"
Para +info recomiendo el siguiente enlace commandlinefu

Saludos.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados