Eliminar una línea particular que contiene un número de un archivo de texto

Eliminar una línea particular que contiene un número de un archivo de texto

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 sedpara eliminar una línea:

sed -i '/1000542/d' abc.cvs

donde delimina la línea, -iindica sedque se opere en el archivo en lugar de simplemente generar el texto modificado, 1000542es el patrón que desea buscar y abc.cvses 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 1000542la impresión.

información relacionada