Tengo un archivo CSV de tamaño razonable (40 Megabytes). Sé que algunas aplicaciones no funcionarán con ciertas codificaciones, y que arrojarán errores si la codificación no es ASCII. Pero es alarmante que incluso TextEdit.app no pueda abrir este archivo.
Primero probé Numbers.app . Me aseguré de que esto no sea un error de Launch Services, porque abrí el archivo dentro de la aplicación. No se cargaría. La barra de progreso siempre se atasca a la mitad. Cuando abro este archivo CSV con TextEdit.app , tampoco se cargará. Ni siquiera Google Sheets. El archivo tiene solo 40 megabytes y solo tiene caracteres ASCII. El file
comando en ejecución en Terminal.app devuelve el siguiente mensaje:
file.csv: ASCII text, with very long lines
.
Puedo abrir el archivo usando Visual Studio Code pero no en TextEdit.app . ¿Cómo puedo arreglarlo? Limpié el archivo para cualquier \r
personaje.
Actualización : el wc -l file.csv
comando en ejecución regresa 176831
. Mi sistema es un MacBookPro 2016 con 16 GB de RAM.
fuente
wc -l FILE.csv
en la Terminal para verificar)? ¿Qué sucede si intentas abrirlo en Textedit?Respuestas:
Es bastante común que los programas GUI no puedan manejar archivos de texto grandes. Aunque 40 MB no suena como grande con respecto a los estándares actuales, pero eso puede aumentar mucho más en la memoria dependiendo de cómo se escriba la aplicación. Y las aplicaciones GUI a menudo no son las más eficientes.
Es posible que desee dividir el archivo de texto en varios más pequeños utilizando el terminal. Primero, verifique si puede abrir el archivo usando
less filename.csv
en la Terminal, y si los caracteres se leen bien. De lo contrario, el archivo podría estar dañado y ese podría ser el problema.Para la división aguda, intente usar algo como esto en la terminal:
Copie y pegue eso en un documento de texto sin formato (por ejemplo, TextEdit en modo de texto sin formato o nano en la Terminal) y
split.sh
asígnele un nombre o algo similar. Personalice los parámetrosN
yfilename
según sea necesario, por ejemplo, ingrese el número deseado de números por archivoN=...
y el nombre de archivo de su archivo fuente comofilename="..."
. Esto generará la cantidad necesaria de archivos en su directorio actual para cubrir todas las líneas de los archivos de origen en archivos más pequeños deN
líneas cada uno. Los archivos tendrán un número añadido, por ejemplo,hugefile0.txt
ahugefile9.txt
o algo por el estilo.Ahora debería poder abrir cada uno de estos archivos en su aplicación deseada. A menudo es deseable trabajar con porciones más pequeñas de un archivo grande que con todo el archivo a la vez. Incluso podría abrir los archivos CSV resultantes en Numbers uno tras otro y copiar las líneas de cada archivo en un documento grande de Numbers. De esa manera, el importador probablemente no se quedará en un archivo tan grande.
En caso de que obtenga algún error con respecto a
sed
oawk
, eso es porque Macsed
yawk
son diferentes a los normalessed
oawk
. En ese caso, es posible que deba instalar regularmentesed
yawk
desde algo como macports o homebrew.fuente