Remova uma linha específica contendo um número de um arquivo de texto

Remova uma linha específica contendo um número de um arquivo de texto

Eu tenho um arquivo .csv com várias linhas de dados. Eu tenho que procurar um valor específico na string/registro e excluir essa linha.

Por exemplo:

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

Preciso procurar 1000542 e remover toda a linha que contém esse número:

col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

Responder1

Você pode usar sedpara remover uma linha:

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

onde dremove a linha, -idiz sedpara operar no arquivo em vez de apenas gerar o texto modificado, 1000542é o padrão que você deseja procurar e abc.cvsé o nome do arquivo.

Responder2

Você também pode usar o awk,

awk '/1000542/ {next}1' infile > outfile

Exemplo:

$ 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

Ele pula a linha que contém 1000542a impressão.

informação relacionada