El 24 de diciembre de 2013, 17:52, Diego Sanchez diegors@gmail.comescribió:
Ok.. Encontre una manera, no muy optima, pero funciona al menos, para ir trabajando sobre el tema.
Cómo lo estoy parcheando?
Reemplazo la "," entre las dos fechas con otro separador, pero tengo que recorrerlo 4 veces (dije que no era optima). Igual, son menos de 700 lineas, no deberia generar taaaanta lentitud.
sed -e "s/PM,/PM|/1"|sed -e "s/PM,/PM|/2" sed -e "s/AM,/AM|/1"|sed -e "s/AM,/AM|/2"
2013/12/24 Diego Sanchez diegors@gmail.com
Gente. Antes que nada, feliz navidad !
Ahora, mi problemita.
Estoy tratando de parsear un CSV que bajo de SNDS de Hotmail [1].
El formato del CSV es el siguiente IP Address,Activity period,RCPT commands,DATA commands,Message recipients,Filter result,Complaint rate,Trap message period,Trap hits,Sample HELO,Sample MAIL FROM,Comments
Sin embargo, lo que bajo, no coincide teniendo campos de más
200.1.2.3,12/23/2013 1:00 PM,12/23/2013 7:00 PM,553,536,536,GREEN,< 0.1%,,,0,ws1.host.name,un@correo.com.ar,
Cuáles son los campos de más? Las dos primeras fechas del contenido corresponde a la columna "Activity period", pero al ponerle una ",", quedan como campos distintos. Este mismo problema, se repite en "Trap message period".
Si estos datos se vieran en una query SQL, seria mas o menos asi (descuenten que "select *" es una burrada y otros etcs, esto es solo para graficar)
SELECT * FROM table limit 1 \G IP Address : 200.1.2.3 Activity period : 12/23/2013 1:00 PM,12/23/2013 7:00 PM RCPT commands : 553 DATA commands : 536 Message recipients : 536 Filter result : GREEN Complaint rate : < 0.1% Trap message period : Trap hits : Sample HELO : ws1.host.name Sample MAIL FROM : un@correo.com.ar Comments :
Al querer insertar esto en una base de datos, falla porque estoy poniendo más datos de las columnas que tengo.
Entonces, básicamente, la pregunta es: ¿Cómo puedo arreglar esto y hacer que sea válido a la hora de importarlo en la base? Pensé en utilizar sed y awk, contando la cantidad de separadores, pero no creo sea el camino correcto (pueden variar si hay o no, datos, y
reemplazar
la segunda ocurrencia, puede correr los datos a insertar un lugar a la izquierda)
Supongo, que deberia apuntar a trabajar directamente con el string de la fecha.
[1] SNDS muestras las IP que estan siendo rechazadas, y si existe, la(s) cuenta(s) de correo que causaron el bloqueo. https://postmaster.live.com/snds
-- Diego - Yo no soy paranoico! (pero que me siguen, me siguen)
-- Diego - Yo no soy paranoico! (pero que me siguen, me siguen) _______________________________________________ CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es
Esto es lo bueno de los sistemas "X", que siempre hay mas de una manera de hacer las cosas y conseguir lo que se desea.
Exitos!