excluir linhas de um arquivo com base em valores específicos em determinadas colunas

excluir linhas de um arquivo com base em valores específicos em determinadas colunas

Eu tenho um arquivo de texto no servidor Linux CentOS 7 que inclui muitas entradas no seguinte formato:

1234567890123456, 1, 17, cde, Test Test
1234567890123456, 2, 17, cde, Test Test
1234567890123456, 3, 17, cde, Test Test
1234567890123456, 4, 17, cde, Test Test
1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test
1234567890123456, 1, 17, cde, Test Test

qual comando devo usar para remover

1, 17
2, 17
3, 17
4, 17

então o resultado deve ser

1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test

Responder1

estranhoabordagem:

awk -F, '!($2<5 && $3==17)' file

A saída:

1234567890123456, 5, 17, cde, Test Test
1234567890123456, 1, 18, cde, Test Test

  • -F,- separador de campo

  • $2, $3- representa o 2º e o 3º campo respectivamente

Responder2

Para excluir esses valores exatos, aproveitando o fato de que a exclusão do campo 3 é sempre '17':

awk -F, '!($3 == 17 && ($2 == 1 || $2 == 2 || $2 == 3 || $2 == 4))' < input > output

informação relacionada