Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Expresiones Regulares... Aprovechando Awk!
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Expresiones Regulares... Aprovechando Awk! 
 
Buenos días!

Los otros días, estaba necesitando manejar archivos csv con miles de filas de datos. Necesitando extraer columnas, formatear algunas otras y luego obtener algunas con ciertas condiciones...
Siempre supe del poder de awk (gawk) para este tipo de cosas...

Para aquellos que les gusta experimentar, o quizás aquellos que necesiten algo como esto por estos días, paso unos ejemplos y algunos links que fui encontrando en la web y que agregué a favoritos!

Ejemplos

Supongamos que tenemos una archivo que contiene este formato de datos:

APBR,D,20060427,000000,30.9834,31.0897,30.8984,31.0259,671092,0

APBR,D,20060428,000000,31.4510,31.7910,31.3660,31.7910,389936,0

APBR,D,20060502,000000,31.5785,32.6835,31.5785,32.6197,307356,0

APBR,D,20060503,000000,32.5135,32.5135,31.7910,32.5135,208966,0

Tenemos un montón de campos delimitados por comas.

En awk para obtener una columna particular hacemos:

gawk -F , '{print $nºdecolumna}' archivo de entrada


gawk -F , '{print $3}' miarchivo.txt
  va a devolver:

20060427
20060428
20060502
20060503

Con -F le indicamos que el separador de campos es la coma (si tipean man gawk van a tener mucha información valiosa...)

Algo que usa alguna otra función de awk:
gawk -F , '{print $1 "," substr($3,1,4) "-" substr($3,5,2) "-" substr($3,7,2) ","  $8}'  miarchivoentrada.txt > miarchivosalida.txt


Toma de mi archivoentrada la columna 1
Hace cierta manipulación de datos a la columna 3 (la prepara para que luego pueda ser importada a mysql, la formatea.
Toma de mi archivoentrada la columna 8.

La función substr es similar a la de gambas Mid$...

Otra cosa fantástica, cuando dejas un espacio en lo que se ejecuta funciona como un & en gambas... es decir, une caracteres.

Si quisiéramos poner alguna condición para que muestre solo las filas que cumplan cierta condición en alguna columna, basta con ponerlo al principio de lo que se ejecuta (ni bien se abre el apostrofe).

Por supuesto que se pueden armar scripts con awk... y ciertamente muy poderosos... Si se preguntan porqué no armé esto en gambas... pues porque iba a tener que programar cosas que no iba a necesitar, este programa ya hace lo que necesito, jeje.

Esto son algunas de las cosas que awk me resolvió... no aburro más con ejemplos ni teoría, posteo los links para que los interesados lean

http://www.polargeek.net/introduccion-a-awk-i/
http://www.polargeek.net/introduccion-a-awk-ii/

Manuales bien completos del "lenguaje"
http://www.grymoire.com/Unix/Awk.html#uh-40
http://www.gnu.org/software/gawk/manual/gawk.html

Es cuestión de sentarse, probar,
 



 
santijav - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Expresiones Regulares... Aprovechando Awk! 
 
Gracias, esta súper tu post
 



 
ivanovichenco - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Expresiones Regulares... Aprovechando Awk! 
 
Interesante, gracias por compartirlo    
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Pregunta Sobre Expresiones Regulares Regexp dquinter General 1 Jueves, 26 Abril 2012, 19:21 Ver último mensaje
shordi
No hay nuevos mensajes Expresiones Regulares Aleking General 6 Miercoles, 02 Julio 2014, 19:31 Ver último mensaje
jguardon
No hay nuevos mensajes Expresiones Regulares. Shell General 9 Lunes, 22 Diciembre 2014, 01:02 Ver último mensaje
Shell
No hay nuevos mensajes Find Y Problema Con Las Expresiones Regulares Shell Mundo Linux 4 Martes, 11 Diciembre 2018, 09:14 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron