Como contar o número de linhas que possuem dados em um arquivo delimitado por um pipe?

4

Eu tenho um arquivo como este

1|2345|John|Smith
2|4563||Smith
3|5968||Doe
4|896|Rick|Lawson
5|889||Eddy

Como faço para contar o número de linhas que possuem dados na terceira coluna?

    
por Bala.C 16.07.2018 / 03:04

2 respostas

8
awk -F '|' 'length($3) { ++count } END { print count }' < input

Na entrada de amostra, resulta em:

2

Funciona definindo o separador de campo como pipe e, em seguida, incrementa count nas linhas que têm um valor não vazio no terceiro campo. No final do arquivo, ele imprime o% final count .

    
por 16.07.2018 / 03:09
3

Usando ferramentas de software:

cut -d '|' -f 3 input | wc -w

Isto assume que a coluna 3 é apenas uma palavra, sem espaços. Se houver espaços, isso deve funcionar:

cut -d '|' -f 3 data | grep -c .
    
por 16.07.2018 / 04:56