Contar linhas com inteiro específico em uma coluna

3

Eu tenho 6 colunas, cada uma com várias linhas.

Eu quero contar o número de linhas que têm o inteiro 4 ou 5 na quinta coluna.

A1 jhfj jdhfjkhd kdkfjjh 5 jhsdjkfh
A2 ujhf jhdfhsd  dsfkks  4 jhsdfjhs
A3 jhfj jdhfjkhd kdkfjjh 5 jhsdjkfh
A4 jhfj jdhfjkhd kdkfjjh 5 jhsdjkfh
A5 ujhf jhdfhsd  dsfkks  4 jhsdfjhs

No exemplo apresentado, o resultado deve ser três para linhas com um 5 e duas para linhas com um 4.

    
por Bio_Ram 13.02.2014 / 09:20

4 respostas

2

Usando apenas awk :

awk '
  $5==4{c4++};
  $5==5{c5++};
  END{
    print "Fours: "c4;
    print "Fives: "c5;
  }' your_file

ou perl :

perl -lane '
  $count{$F[4]}++;
  END{
    print "Fours: $count{4}";
    print "Fives: $count{5}"
  }' your_file
    
por 16.02.2014 / 11:07
3

Isso fornecerá as contagens brutas de linhas com 4 e linhas com 5 na quinta coluna.

$ awk '{print $5}' somefile | sort | uniq -c
      2 4
      3 5

Conta o primeiro dígito na saída, a segunda coluna é a que número corresponde da quinta coluna.

    
por 13.02.2014 / 09:34
0

Após a execução, você será direcionado para a saída desejada.

1) awk '{print $5}' 4.txt | grep -c 4

2) awk '{print $5}' 4.txt | grep -c 5

3) awk '{print $5}' 4.txt | sort | uniq -c

Explicação:

A opção

-c contará o não. de padrão combinado em todos os casos acima

    
por 13.02.2014 / 10:21
-1
cat file | awk '{print $1,$2,$3,$4,$6}'

saída é:

A1 jhfj jdhfjkhd kdkfjjh jhsdjkfh
A2 ujhf jhdfhsd dsfkks jhsdfjhs
A3 jhfj jdhfjkhd kdkfjjh jhsdjkfh
A4 jhfj jdhfjkhd kdkfjjh jhsdjkfh
A5 ujhf jhdfhsd dsfkks jhsdfjhs

não há 5 e 4 nas linhas da quinta coluna. Do seu post eu espero que você tenha solicitado assim.

    
por 13.02.2014 / 09:54