Eliminar registros
Quizás, por alguna razón, luego de generar un archivo necesitamos quitar algún registro antes de enviarlo, ya sea porque no queremos que esa transacción salga en ese envío, o por un rechazo del archivo enviado anteriormente.
A veces es posible volver a generar el archivo, pero no todos los sistemas tienen una forma sencilla de hacerlo.
Lo primero que debemos hacer es identificar el o los registros que queremos quitar del archivo. Para esto podemos realizar una búsqueda tal como se indica en la sección Búsqueda de datos en archivos IPM
Lo importante aquí es obtener el o los números de registros físicos en el archivo correspondiente.
A modo de ejemplo, utilizaremos el mismo criterio utilizado en el caso tratado anteriormente, de búsqueda de un registro mediante el comando GREP. Vamos a eliminar del archivo file9 el registro correspondiente a la compra en el comercio “Carpinteria” y por un monto de 1970,00

Utilizamos aquí la versión reducida de la búsqueda, ya que sabemos que ese registro esta en ese archivo y ya identificamos el registro, por lo que solo necesitamos conocer el numero de registro (para ello utilizamos --matches y –silent), obteniendo el numero de registro 2339

Observamos que se elimino un registro del archivo, el cual originalmente contenía 10880 registros y ahora contiene 10879 registros. Vemos ademas, que el archivo original tenia un error en el trailer, pero el nuevo archivo, al tener que recalcular los valores del trailer, ya soluciona ese problema.
También observamos que el archivo original no se modifica, sino que se genera uno nuevo, por defecto con el mismo nombre del original pero agregándole “-DEL” (podemos especifica el nombre que queremos utilizando el flag --out)
Pero que pasaría si quisiéramos eliminar todos los registros correspondientes al comercio “Carpinteria”? Podemos realizar la operación por cada uno de los registros, o podemos anotar los números de registro encontrados, pero eso puede resultar poco practico si tenemos una cantidad considerable de registros.
Para ello podemos utilizar el flag --last que utiliza el resultado del ultimo comando GREP realizado sobre ese archivo. Veamos como se usa:

Realizamos una búsqueda por el valor “carpinteria”, y nos devuelve que hay 6 registros para ese comercio.
El próximo comando utilizado es el comando DELETE, pero usando el flag --last, por lo que se utiliza la lista de registros devueltas como resultado del GREP anterior, y vemos que efectivamente se genera un archivo con 10874 registros resultantes de quitar 6 registros de los 10880 originales.
El archivo que contiene los registros eliminados muestra 8 registros que son los 6 eliminados, mas el Header y Trailer