programa awk

Hola:

Tengo un shell script con al que le paso unos parámetros de entrada, ejemplo ./shell_script fichero1 usuario1.
Este shell script tiene awk dentro, lo que quiero es poner como patrón para buscar dentro del fichero1 al usuario1, pero quiero buscar exactamente usuario1, no que me saque por ejemplo usuario12 que también concuerda con el patrón.

Gracias por adelantado.
Salu2
Pues arregla la expresión regular de búsqueda para que fuerce el comienzo y el final de campo.

- ferdy
Hola:

¿Como se hace eso?

Gracias por adelantado
No puedo saberlo si no veo la regex. Pero básicamente repasa los apuntes de expresiones regulares :)

- ferdy

PD: Puta restricción de los 45 segundos...
No tengo claro lo que piedes, pero si te refieres a como hacer referencia a los argumentos que has pasado al script, se hace con las variables especiales $1,$2,$3...

Saludozzzzzzzz
Hola:

Me refiero por ejemplo si el fichero1 tiene la siguiente estructura:

usuario1 hola
usuario1233 hola que tal
pepe adios
usuario111 campeón

La ejecución del shell script sería:

./mi_shell_script fichero1 usuario1

Si pongo de patrón dentro de mi shell script, usuario1 que dentro con awk me referiría a el así: /'$2'/ y como regla asociada a ese patrón le digo que imprima la linea, solo quiero que imprima la linea correspondiente a usuario1, no la de usuario1233 ni la de usuario111 que también concuerdan con el patrón usario1.

NO sé si me he explicado bien.
Gracias !!!
Si te has explicado bien, y lo que tienes que hacer es lo que yo te he dicho. Repasar los apuntes de expresiones regulares o mirar documentación al respecto. No podemos dártelo hecho... porque apesta a práctica para la facultad / módulo.

- ferdy
No acabo de entender la ultima parte, pero si me dices , para los datos de ejemplo que has puesto en fichero1, qué salida te gustaría obtener tras ejecutar
./mi_shell_script fichero1 usuario1

miraremos que se puede hacer :)

Saludozzzzzzzzz
Tiene que salir:

usuario1 hola


¡ Pero no se lo chives o no aprenderá !

- ferdy
No te voy a chivar como hacerlo con awk, pero si voy a darte una pista de como hacerlo con una sola linea y usando grep
#!/bin/bash
grep -e ^$2  $1

Tal y como está no funciona, pero añadiendo un solo carácter justo detrás de $2 ya funcionará. Ahora tienes dos opciones, probar muchos caracteres uno a uno, o leer la documentación sobre expresiones regulares ;)

Otra pista, el carácter no es una letra ni un número :)

Cuentanos los avances.

Saludozzzzzz
9 respuestas