Tente isto:
awk 'NF >= 23' file
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?
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.
E com bom 'ol grep
:
grep -E '(\s+\S+){22}' file.txt
Tags text-processing awk