Imprimir campos iguales de un archivo

Tengo una tarea escolar, acudo a usted porque no he tenido fortuna investigando y vaya que lo he hecho. El problema es el siguiente:
Tengo un archivo que tiene:
luis:1234:[email protected]
pedro:345:[email protected]
luis rivero:789:[email protected]
***quiero imprimir en el siguiente formato solo los que tengan el nombre luis, algo similar a lo siguiente:  *****
Nombre: luis
Edad: 1234
mail: [email protected]
Nombre: luis rivero
Edad:789
mail:[email protected]
----
1

1 Respuesta

18.325 pts. Técnico superior en Administración de Sistemas...
Me da que mucho no buscaste, o no supiste buscar bien. Pero bueno, como estamos en navidad, te resuelvo yo tu ejercicio. Suponiendo que el archivo de nombres se llame nombres.txt, el comando para sacar la lista de luises sería el siguiente:
awk -F:  '{if ($1 ~ "luis") print "nombre:" $1"\n""edad:" $2, "\n""mail:"$3"\n"}' < nombres.txt
Disculpe lo moleste otra vez...
Pero al hacer lo que me dijo, y poner una variable ya exportada y leída con anterioridad no sale nada cuando pongo la variable entre comillas o sin comillas. Yo use la variable $use en lugar del nombre luis ejem:
luis : "$use"  luis: $use
Y no pasa nada ahora mi pregunta
¿Hay algo que se tenga que colocar cuando se usan variable?
Le agradezco mucho de ante mano...
Le escribo el primer código que tengo
read Use
export Use
awk -F:  '{if ($1 ~ $Use ) print "nombre:" $1"\n""edad:" $2, "\n""mail:"$3"\n"}' < nombres.txt
el segundo codigo que tengo:
read Use
export Use
awk -F:  '{if ($1 ~ "$Use" ) print "nombre:" $1"\n""edad:" $2, "\n""mail:"$3"\n"}' < nombres.txt
habra algo que este haciendo incorrectamente?
muy amable por su atencion le agradezco su ayuda =)
Vaya cacao maravillao que tienes, hijo mío!
Si la lista de nombres está en un archivo, ¿para qué demonios usas read y luego exportas la variable? Read es para leer una entrada desde el teclado, y export, para que una variable esté disponible fuera del ambiente de ejecución del script que exporta dicha variable.
En todo caso, deberías repasarte el uso de las variables en programación, qué son, para qué sirven, etc... te recomiendo esto para empezar:
http://wiki.softwarelivre.org/TWikiBar/WebHome#Libro_de_Shell_en_Espa_ol
Lo digo porque si usas mi script, pero modificándolo porque los nombres están en una variable que se llama $use, lo que deberías de cambiar es $1 por $use (variable por variable) Y tú has cambiado una expresión constante (luis) por la variable.
Quizá si explicas lo que realmente quieres hacer y para qué pueda ayudarte mejor.
Buen día:
Si tiene usted razón le explico lo que quiero:
  Estamos practicado el comando sh y creando archivos con programitas, entonces en el programita me pregunta el nombre del usuario yo lo teclee y la idea es desplegar a los usuarios con ese nombre =).
Si le comento es primera vez que estudio unix, y pues estamos en el segundo mes de la materia, pero si es muy interesante.
Le agradezco su atención
Y el archivo donde están los usuarios es un archivo creado por vosotros o es /etc/passwd?
Porque /etc/passwd (la lista de usuarios del sistema) tiene este formato:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
Si es el /etc/passwd, dime la información que quieres obtener.
Es una archivo que creamos en clase:
Tiene el formato:
luis gutierrez ochoa:24:[email protected]
roman rodriguez:23:[email protected]
luis sanchez:45:[email protected]
Y pues la idea es en el archivo pedir el nombre y desplegar los que se llamen por ejemplo luis.
Muchas gracias me ayudo mucho lo que hice fue lo siguiente:
a su codigo en vez de poner luis coloque la variable leida de la siguiente manera -->
awk -F:  '{if ($1 ~ `/$usuario/` ) print "nombre:" $1"\n""edad:" $2, "\n""mail:"$3"\n"}' < nombres.txt
muchisimas gracias =)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas