Exclui linhas com menos de 23 colunas

0

Eu gostaria de excluir (excluir da saída) algumas linhas que possuem menos de 23 colunas em um arquivo. Por exemplo:

BR1009298 338 1685 5839 1986 21111995 1 1 1 0 20032001 954 31266 1 1 4 5 205 95 27 3 2 BR1009298
BR1009304 339 5835 5797 1986 23011996 0 1 1 0 5081997 961 11189 3 1 3 4 1007 96 28 3 3 BR1009304
BR1009306 340 1578 0 1986 4041997 0 1 1 0 15081997 972 11189 9 1 9 9 501 97 42 3 0 
BR1009309 112180 5910 5791 1986 9011996 1 1 1 0 22111999 961 5445 5 1 1 1 1007 96 28 3 4 BR1009309

Eu gostaria de excluir a terceira linha, porque ela tem apenas 22 colunas. É um arquivo grande e todas as linhas que não têm 23 colunas precisam ser removidas.

Como posso fazer isso?

    
por Elisandra Lurdes Kern 20.10.2016 / 21:54

3 respostas

4

Tente isto:

awk 'NF >= 23' file
    
por 20.10.2016 / 22:02
1

perl -ane 'if ($#F >= 22) { print }' < t em que t contém seus dados de entrada.

Note que é 22 porque o índice da matriz começa em 0 em perl.

    
por 20.10.2016 / 22:03
0

E com bom 'ol grep :

grep -E '(\s+\S+){22}' file.txt
    
por 21.10.2016 / 02:58