Búsquedas en .csv – Linux awk

Ejemplo:  tengo un fichero de texto de base de datos. Cada fila corresponde a los datos de un usuari. Los datos estas sepadados por punto y comas.

En nuestro caso tenemos una base de datos .csv con un listado de usuarios.

> cat /home/usuarios.csv
user1;Alberto Contador;10;5;6
user2;Juan Palomo;16;5;2
user3;Juan Carlos Ferraondo;3;2;3
user4;Pep Domingo;4;2;2;baja
user5;Juan Belloch;8;2;2
user6;Alba Altillo;9;3;4
user7;Cristobol Echerrioderio;10;5;2
user8;Abel Canton;8;0;2
user9;Juanlu Castaluto;2;0;2
user10;Pepe Albin;3;0;2

Preguntas:

Cómo puedo saber si la longitud de los valores de la primera columna es igual en todas la filas?

Cómo puedo saber si todas la filas tienen el mismo número de columnas?

 

Solución:

Para imprimir todas las lineas que tengan  mas de 5 columnas

> awk -F';' '{if(NF > 5) print;}' /home/usuarios.cvs
user4;Pep Domingo;4;2;2;baja

Para imprimir la segunda columna cuando tenga mas de 18 caracteres

> awk -F';' '{ if (length($2) > 18) print $2;}' /home/usuarios.cvs
Juan Carlos Ferraondo
Cristobol Echerrioderio

Imprimir toda la fila si la tercera columna tiene 2 carácteres de longitud

> awk -F';' '{ if (length($3) == 2) print;}' /home/usuarios.cvs
user1;Alberto Contador;10;5;6
user2;Juan Palomo;16;5;2
user7;Cristobol Echerrioderio;10;5;2




Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)

Leave a Reply

Your email address will not be published. Required fields are marked *