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

0

Eu tenho um arquivo .csv com várias linhas de dados. Eu tenho que procurar por um valor particular na string / record e deletar a própria 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

Eu 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
    
por shah 18.06.2014 / 13:02

2 respostas

3

Você pode usar sed para remover uma linha:

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

onde d remove a linha, -i informa sed para operar no arquivo em vez de apenas exibir o texto modificado, 1000542 é o padrão que você deseja pesquisar e abc.cvs é o nome do arquivo.

    
por 18.06.2014 / 13:17
0

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

Ignora a linha que contém 1000542 da impressão.

    
por 18.06.2014 / 14:01