Saltar al contenido principal

IDENTIFY

Identifica automáticamente el formato y características de un archivo de intercambio.

Sintaxis

$ cardak help identify
usage: cardak identify [<flags>] <files>...

Identify the file type. This is the default command if none is specified

Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
-v, --verbose Add more information displayed on some commands.
--mono Supress color on output.
--ignore Try to ignore some errors and continue processing the file
-W, --width Ignore small terminal width check and force execution
-z, --silent Suppress all output (banner, headers, summary) except the results. Specially useful for DESCRIBE command piped to a search utility like fzf
--detailed Force detailed information regardless of number of files. This option displays more than one line per file
--compact Force compact information regardless of number of files. This option displays summary information on just one line per file
-a, --analyze Analyze the contents of the file (for IPM files) and show extended information

Args:
<files> List of files to be identified.

Descripción

Cuando no especificamos ningún comando, se asume IDENTIFY

Este comando recibe una lista de nombres de archivos y muestra información sobre los mismos, como ser el tamaño (en bytes), la codificación utilizada, el tipo de registros y si el archivo esta en bloques de 1014.

Si solamente indicamos un archivo, se muestra información detallada del mismo, de lo contrario, se muestra en forma compacta (información de un archivo por linea).

De todos modos podemos forzar la salida usando los flags --detailed o --compact

Si agregamos el flag --analyze (-a), se procederá a leer el contenido de los archivos y efectuar un análisis para determinar la cantidad de registros presentes, realizar un chequeo rápido para encontrar errores, y también mostrar algunas estadísticas, como por ejemplo la cantidad de archivos lógicos y cantidad de registros por cada uno, la cantidad de registros por MTI, cantidad de registros por Transaction Type, y la cantidad de registros por MCC (si agregamos la opción --verbose)

[Información adicional sobre el análisis]

El análisis detallado puede tomar tiempo adicional dependiendo del tamaño del archivo. Durante este proceso se verifican:

  • Integridad de los registros
  • Consistencia de los campos obligatorios
  • Estadísticas de distribución por tipo de transacción
  • Validación de códigos de error
aviso

Este comando no está optimizado cuando se usa el flag --analyze por lo que cuando se utiliza esta opción, se carga el contenido completo del archivo en memoria. (Esto podrá cambiar en una futura versión)

Ejemplos

Podemos rápidamente identificar el tipo y formato de los archivos conocidos de esta forma:

Ejemplo de uso del comando IDENTIFY

Podemos observar que hay unos cuantos archivos IPM y también archivos FIT, MPE y de AMEX. Se puede además observar el formato de cada uno de esos archivos.

Podemos agregar el flag --analyze para obtener más información sobre los archivos. En ese caso cada uno de los archivos deberá ser procesado para analizar su contenido, por lo que este proceso demora más tiempo, pero nos brinda más información. Por ejemplo:

Ejemplo de uso del comando IDENTIFY con --analyze

Vemos que los archivos que no son identificacos como archivos IPM se muestran al principio, y luego se muestra el detalle de cada uno de los archivos IPM. Además de la información básica, nos muestra la cantidad de registros presentes en cada archivo y la cantidad de archivos lógicos dentro del archivo (junto a la cantidad de registros de cada uno).

También se muestra en color rojo (y marcado con un asterisco para diferenciarlos en caso de no tener salida coloreada) aquellos archivos que contienen algún tipo de error, y que para tener mayor información de esos errores se puede utilizar el comando VALIDATE.

Si queremos ver la información detallada del análisis de un archivo, podemos agregar el flag --detailed, o indicar solo un archivo para analizar ya que en ese caso se asume automáticamente el flag --detailed.

Ejemplo de uso del comando IDENTIFY con --analyze y --detailed

Como podemos ver, a los datos ya presentados se agregan los totales de registros por MTI y por Transaction Type