123 marcelo rut 123712
421 jorge rut 88876
8766 marcela rut 98787
766 fernando rut -
lo guardo en un archivo llamado awktest para efectos de mostrar el funcionamento.
Si se fijan, el último tiene un guión en lugar de número, entonces, en el caso que quiera obtener los registros que tengan la palabra rut y seguida de un conjunto de números, podemos utilizar el comando awk de la siguiente forma:
[test@Linux ~]# awk '/rut/&&/ +[0-9]/ { print $0 }' awktest
123 marcelo rut 123712
421 jorge rut 88876
8766 marcela rut 98787
Ahora, el efecto de utilizar algo así: awk '/ +[0-9]/ { print $0 }' awktest para este caso entrega el mismo resultado, salvo si existiera un registro con un registro como:
765 pablo RuT 6543
Este sera mostrado:
[test@Linux ~]# awk '/ +[0-9]/ { print $0 }' awktest.awk
123 marcelo rut 123712
421 jorge rut 88876
8766 marcela rut 98787
765 pablo RuT 6543
a diferencia del primer comando, donde busca la palabra rut de manera literal.
Ahora el comando se compone así:
- awk, el comando en sí mismo.
- El símbolo ' indica el inicio los parametros para el comando distintos al archivo o entrada
- El texto existente entre los slash / son los elementos que busca de manera literal. El texto a buscar debe ir entre dos slash.
- El símbolo & repetido, indica un y lógico, un AND, entonces decimos que busque rut y el segundo elemento.
- El elemento +[0-9] quiere decir que debe ir una cadena de numeros, entre 0 y 9, con al menos un número y no importa cuantos exista.
- Entre los símbolos { } están las acciones que se aplicarán a los registros que cumplan con la condición, en este caso print $0 muestra la línea completa entrante.
- Finalmente el archivo que será utilizado como entrada
No hay comentarios.:
Publicar un comentario