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 conteniendo un registro incorrecto.
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 cual es el mismo, por lo que sólo necesitamos conocer el número de registro (para ello utilizamos --matches y –silent), obteniendo el numero de registro 2339

Observamos que se eliminó un registro del archivo, el cual originalmente contenía 10880 registros y ahora contiene 10879 registros. Vemos además, que el archivo original tenía 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” al final (podemos especificar 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 encontramos 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