Eliminar lineas de archivo CSV por criterio

Marcos Ramirez mramireza en armada.cl
Mie Feb 2 15:12:19 CLST 2011


On Wed, 2011-02-02 at 15:00 -0300, Rodrigo Ruiz Fuentes wrote:
> Estimad en s,
> la situación es la siguiente, tengo un archivo grande en formato CSV, 
> separado por puntos y comas (;) y delimitado por comillas dobles ("), en 
> los campos 4 y 5 vienen latitudes y longitudes respectivamente, a veces 
> el dato viene mal y vacío, o sea ""... necesito revisar el archivo y 
> eliminar las lineas que en el campo 4 y 5 sean "" (vacías).
> Me indicaron que con sed podía hacer eso, algo logré, sin embargo hay 
> mas campos que si pueden ser vacíos, pero no se debe eliminar la línea 
> completa, entonces ahí es el problema, no sé como indicar que verifique 
> la posición 4 y 5 solamente.

si entiendo bien, quieres eliminar todas las lineas donde el campo 4 ó
el campo 5, o bien, esten vacios, o solo tengan un par de ""

Si es asi, te deberia servir algo como

egrep -v -e '^([^;]*;){3,4}\"?\"?;' archivo 

Saludos

-- 
Marcos Ramirez <mramireza en armada.cl>

Documento PUBLICO





Más información sobre la lista de distribución Linux