Visión general:
Su trabajo es tomar la entrada CSV en key=value
formato y alinearla de una manera más organizada (ver más abajo).
Entrada:
Siempre a través de stdin . Los registros siempre estarán en la siguiente forma key=value
:
foo=bar,baz=quux
abc=123,foo=fubar
baz=qwe,abc=rty,zxc=uiop,foo=asdf
- No habrá una lista de posibles claves por adelantado, debe encontrarlas en el texto de entrada.
- El final de la entrada se indicará mediante
EOF
cualquier implementación queEOF
sea apropiada para su sistema operativo.
Salida:
La primera fila de su salida será una lista de todas las teclas, en orden alfabético (incluso si las teclas son todas números). Después de eso, imprima cada registro en el mismo formato CSV con el encabezado de número apropiado, sin las teclas enumeradas. Entonces, para el ejemplo anterior, la salida correcta sería:
abc,baz,foo,zxc
,quux,bar,
123,,fubar,
rty,qwe,asdf,uiop
PREGUNTAS MÁS FRECUENTES:
- ¿Tengo que preocuparme por una entrada con formato incorrecto?
- No. Su programa puede hacer lo que quiera (lanzar una excepción, ignorar, etc.) si la entrada no está formateada correctamente, por ejemplo, una línea de
foo,bar,baz
- No. Su programa puede hacer lo que quiera (lanzar una excepción, ignorar, etc.) si la entrada no está formateada correctamente, por ejemplo, una línea de
- ¿Cómo manejo los caracteres especiales de escape?
- Puede suponer que no habrá datos adicionales
,
o=
en los datos que no sean parte delkey=value
formato."
no tiene ningún significado especial en este concurso (aunque sí lo tiene en el CSV tradicional).Tampoco es especial de ninguna manera.
- Las líneas deben coincidir con la siguiente expresión regular:
^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$
- Por lo tanto, las claves y los valores coincidirán
[^=,]+
- Por lo tanto, las claves y los valores coincidirán
- Puede suponer que no habrá datos adicionales
- ¿Qué hay de
CRLF
frenteLF
?- Puede elegir el delimitador que sea apropiado para su plataforma. La mayoría de los idiomas manejan esto sin un código de delimitación especial.
- ¿Necesito imprimir comas finales si las últimas columnas no existen?
- Si. Mira el ejemplo.
- ¿Están permitidos los analizadores CSV u otras herramientas externas similares?
- No. Debe analizar los datos usted mismo.