0 votos

Abrir archivo de texto en Numbers cuando está delimitado por espacios, pero algunos campos son cadenas entre comillas con espacios

Tengo un archivo de registro que me gustaría abrir en Numbers para facilitar la búsqueda. El problema es que el formato no es CSV. Cada línea tiene una docena de campos y los campos están separados por espacios. Sin embargo, algunos de esos campos son cadenas, que contienen espacios, por lo que no puedo simplemente hacer un reemplazo de búsqueda de espacios y poner la coma. Un campo, la fecha, está formateado así: [06/Feb/2018:03:27:37 +0000] . Este parece ser el único lugar donde se utilizan []s, por lo que podría encontrar/reemplazarlas por "s, pero sigo teniendo problemas para importar el documento. Coloca cada fila en una sola columna.

Así que, para resumir, mi objetivo es tomar un archivo de entrada y romper cada fila para que el espacio es el delimitador, pero ignora los espacios entre comillas.

0 votos

Sustituir los espacios fuera de [] por caracteres de tabulación

0 votos

¿Cómo lo hago sin sustituir también los espacios dentro de []? Es un archivo grande.

1 votos

Si tienes un editor que pueda usar regex (por ejemplo textwrangler o bbedit) o estás dispuesto a usar sed (en este caso recuerda la bandera -E) o escribir un pequeño filtro en cualquier lenguaje que conozcas (por ejemplo perl o Python), puedes primero cambiar los corchetes por "s y luego usar la regex s/\ (?=(?:[^"]*"[^"]*")*[^"]*$)/ \t /g (no es que sea así de bueno con las regexes, está explicado aquí: regex101.com/r/sU3fA2/29 )

2voto

Gio Valerio Puntos 91

Si tiene un editor que puede utilizar regex (por ejemplo textwrangler o bbedit)
o está dispuesto a utilizar sed (en este caso recuerde la bandera -E)
o puedes escribir un pequeño filtro en cualquier lenguaje que conozcas (por ejemplo perl o Python),
puede cambiar primero los corchetes por "s" y luego utilizar la regex:
s/\ (?=(?:[^"] "[^"] ") [^"] $)/ \t /g
convertir cualquier espacio que no esté entre comillas en tabuladores, para que Numbers lo importe correctamente (no es que yo sea así de bueno con las regexes, se explica aquí: regex101.com/r/sU3fA2/29)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X