FILTER
Filtra registros de un archivo de intercambio basándose en múltiples criterios.
Sintaxis
cardak filter [OPCIONES] <archivo_entrada> [archivo_salida]
$ cardak help filter
usage: cardak filter <command> [<args> ...]
Manages filter files
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
Commands:
filter
list [<flags>] [<file>]
delete [<flags>] <file>
rename [<flags>] <old> <new>
copy [<flags>] <source> <destination>
add [<flags>] <file> <fields>
remove [<flags>] <file> <fields>
Descripción
Este comando no actúa sobre archivos, sino que ayuda en el mantenimiento de filtros. Los filtros son configuraciones que nos ayudan a evitar tener que escribir grandes listas de campos para ser usados como filtros. Para ello, este comando maneja (a diferencia de otros comandos), subcomandos.
Para entender mejor el concepto, imaginemos que frecuentemente queremos utilizar los campos DE2, DE3, DE4, DE12, DE24, DE25 y DE26, porque no nos interesa desplegar siempre los valores de todos los campos que vienen en los registros.
Podemos, cada vez que usemos un comando como PRINT, agregar esto: -R D4,D12,D24,D25,D26
Pero eso es poco practico. Entonces, lo que podemos hacer es definir esta lista de campos como un filtro, y para ello necesitamos darle un nombre. El nombre es una cadena de caracteres que no debe contener espacios.
Veamos como utilizar esta funcionalidad. Comenzaremos por el subcomando LIST para ver las configuraciones definidas
Como podemos ver, no tenemos ningún filtro definido. Procederemos a crear uno llamado “myfilter” y que contenga la lista de campos que mencionamos anteriormente.
El comando FILTER ADD va a agregar los campos indicados a un archivo de filtro existente, o, en este caso, nos pregunta si queremos crear uno nuevo. Le indicamos que si y nos muestra como quedo configurado este nuevo filtro llamado “myfilter”
A partir de este momento, cuando necesitemos especificar una lista de campos, podemos utilizar el nombre del filtro en su lugar. O sea, en vez de colocar esto: -R D4,D12,D24,D25,D26 podemos utilizar simplemente: -R myfilter
Vamos a crear otro filtro mas llamado “otherfilter” pero con otros campos
Veamos ahora que filtros tenemos definidos utilizando el comando FILTER LIST
ya tenemos dos filtros definidos. Podemos definir todos los que necesitemos, y en caso de tener muchos definidos, podemos ver el contenido en forma mas compacta, usando --summary
Si necesitamos ver en detalle uno solo de estos, podemos simplemente indicar el nombre
Ahora, supongamos que no fue una buena elección el nombre de “myfilter” porque no nos da ningún indicio de su uso. Quisiéramos que se llamara, por ejemplo, “basico”. Podemos renombrarlo de la siguiente forma:
Vamos a crear un nuevo filtro a partir de uno ya existente. Tomaremos el filtro “otherfilter” y crearemos uno llamado “prueba”
A continuación vamos a agregar nuevos campos al filtro “prueba”. Para probar, vamos a incluir algunos campos ya existentes y ver que sucede
Observamos que los campos ya existentes son ignorados, y que podemos agregar directamente subcampos sin tener que incluir el campo genérico (por ejemplo el DE022S05 esta sin haber incluido el DE022).
También podemos quitar campos de un filtro. Por ejemplo, quitemos el PDS0023
Y por ultimo, podemos eliminar un filtro que ya no necesitemos mas.