Excluir linhas contendo campos vazios

0

Eu quero excluir as linhas contendo campos vazios na última linha $ 7

Arquivo:

1 1479870 5022248660 1 40001 189445122 740020
1 1911574 3015889020 1 33001 162049034 633004
1 1569783 5029193930 1 22001 133687297 522216
1 2069616 1025856960 2 25001 185608704 
1 1741598 5021128160 1 44001 164870942 644027
1 1052941 5020319300 1 10001 156161802 610007
1 1686734 5020347480 1 13001 131405824 513304
1 1872263 5029089700 1 23001 185092353 723017

Saída desejada:

1 1479870 5022248660 1 40001 189445122 740020
1 1911574 3015889020 1 33001 162049034 633004
1 1569783 5029193930 1 22001 133687297 522216
1 1741598 5021128160 1 44001 164870942 644027
1 1052941 5020319300 1 10001 156161802 610007
1 1686734 5020347480 1 13001 131405824 513304
1 1872263 5029089700 1 23001 185092353 723017
    
por Nydenn 27.02.2017 / 11:04

2 respostas

2

Tente com este:

awk  '$7!=""' file > final_output
    
por 27.02.2017 / 11:08
0

Se os campos estiverem separados por um caractere de espaço, ao contrário de qualquer sequência de caracteres em branco, se

1 2  4 5 6 7

É uma linha que tem um 7º campo, mas não um 3º campo, você faria:

awk -F '[ ]' '$7 != ""' < file > final_output

[ ] é uma expressão regular que corresponde ao caractere de espaço. Não usamos -F ' ' como um único espaço, pois o separador de campo tem um significado especial (fornece o comportamento padrão de divisão de campo onde qualquer seqüência de um ou mais caracteres em branco atuam como um separador e líder e espaços em branco são ignorados).

    
por 27.02.2017 / 13:30