Quería trabajar con unos excels de Microsoft Excel Online que me habían compartido y quería integrarlos en un script en bash que he hecho para hacer unos cálculos. El script que he hecho funciona a partir de una archivo .csv, así que necesitaba exportar esas Hojas de cálculo a este formato.
Hojas de cálculo de Google, permite exportar las hojas a muchos formatos, entre ellos a .csv, digamos en cierto modo, es mucho mas abierto. Microsoft Excel Online, aunque ya permite exportar a .ods, solo permite a este formato y .xlsx.
Se que hay modos de convertir un archivo a csv, abriendo con LibreOffice y exportándolo. También se que puedo hacerlo ejecutándolo en segundo plano desde la terminal. Hay otros programas y conversores. Ninguno de los métodos deja el csv 100% limpio, columnas separadas únicamente por comas.
Me dió por hacer una prueba. Copiar el contenido de la tabla, que veo en la página web y pegarlo en un editor de texto. Al ver ese contenido desordenado en el editor, hizo que mentalmente mi cerebro corriera bash en segundo plano y con bash solucioné el problema.
Con este simple comando, dejé el contenido copiado de la página web con el ratón, en un perfecto archivo .csv El contenido de la página está en el archivo.txt
cat archivo.txt | sed "s/,/./g" | sed "s/\t/,/g" | sed "/^ *$/d"
Explicación:
cat
–> Visualiza el archivo de textosed "s/,/./g"
–> El archivo tenía números decimales que se podría confundir con las "comas" del csv, así que convierto las comas a puntos.sed "s/\t/,/g"
–> La separación de columnas es superior a dos espacios, así que son un tabulado. Convierte los tabulados en comassed "/^ *$/d"
–> Cada fila, queda representada por una línea en blanco. Sed eliminará las líneasExportamos a archivo.csv el resultado filtrado por el comando
cat archivo.txt | sed "s/,/./g" | sed "s/\t/,/g" | sed "/^ *$/d" > archivo.csv
Como ves, una archivo que tenía que pasar por 2 programas y al final, tener que editarlo a mano para poder arreglar las comas del csv, bash me lo ha solucionado con una única línea de teminal.
Publicado por Angel el Saturday 21 September del 2019
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.