puxe linhas que contenham 1 na terceira coluna

2

Eu tenho um arquivo de texto com 633K linhas, todas com 3 colunas

768844  30050038638556  0
768892  30050018569904  1
768967  30050028970902  0

Como faço para retirar em um arquivo as linhas que têm "1" na terceira coluna, o resultado deve ser apenas linhas com 1

768892  30050018569904  1
    
por riley 28.04.2016 / 00:32

2 respostas

7

Se você quiser que a coluna 3 seja exatamente '1', então:

awk '$3==1' input > output

Se você quiser que a coluna 3 contenha '1', então:

awk '$3~1' input > output

Caso você prefira sed, aqui está uma para "coluna 3 é exatamente 1":

sed -rn '/^[^ ]*[ ]*[^ ]*[ ]+1$/ p' input > output

... e sed para "coluna 3 contém 1":

sed -rn '/^[^ ]*[ ]*[^ ]*[ ]+.*1.*$/ p'
    
por 28.04.2016 / 00:58
4

Supondo que não há espaços em branco após a terceira coluna (ou seja, o número está no final da linha) e que você está lidando apenas com números de um único dígito na terceira coluna:

grep '1$'  input.txt > output.txt
    
por 28.04.2016 / 00:44