
Tengo un archivo .csv que tiene varias líneas de datos. Tengo que buscar un valor particular en la cadena/registro y eliminar esa línea.
Por ejemplo:
abc.csv
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000542,eeee,ffff,gggg,hhhh
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp
Necesito buscar 1000542 y eliminar toda la línea que contiene ese número:
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp
Respuesta1
Puedes usar sed
para eliminar una línea:
sed -i '/1000542/d' abc.cvs
donde d
elimina la línea, -i
indica sed
que se opere en el archivo en lugar de simplemente generar el texto modificado, 1000542
es el patrón que desea buscar y abc.cvs
es el nombre del archivo.
Respuesta2
También podrías usar awk,
awk '/1000542/ {next}1' infile > outfile
Ejemplo:
$ awk '/1000542/ {next}1' file
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp
Se salta la línea que contiene 1000542
la impresión.