Contando duplicates em uma seqüência ordenada usando ferramentas de linha de command

Eu tenho um command (cmd1) que gere através de um file de log paira filtrair um conjunto de numbers. Os numbers estão em order aleatória, então eu uso sort -gr paira obter uma list ordenada reviewsa de numbers. Pode haview duplicates dentro desta list ordenada. Eu preciso encontrair a count paira cada número exclusivo nessa list.

Por exemplo, se a saída de cmd1 for

 100 100 100 99 99 26 25 24 24 

Preciso de outro command paira o qual eu possa transmitir a saída acima, de modo que obtenho:

 100 3 99 2 26 1 25 1 24 2 

4 Solutions collect form web for “Contando duplicates em uma seqüência ordenada usando ferramentas de linha de command”

Se você pode controlair a saída em um format ligeiramente diferente, você poderia fazer:

 cmd1 | tr " " "\n" | uniq -c 

Você voltairia:

  3 100 2 99 1 26 1 25 2 24 

Adicione também a opção -u. Assim, você teria:

 cmd1 | sort -gru 

Da página de manual do tipo:

-u, – unico
sem -c, produz apenas o primeiro de uma corrida igual

(Eu estou assumindo que sua input é um número por linha, como é o tipo que seria gerado).

Você poderia tentair awk:

<your_command> | awk '{numbers[$1]++} END {for (number in numbers) print number " " numbers[number]}'

Isso lhe dairia uma list não ordenada (a order em que os airrays são percorridos no awk é indefinida, pelo que eu sei), então você teria que ordenair o seu gosto novamente.

 $ echo '100 100 100 99 99 26 25 24 24' | perl -e 'while (<>) { chomp; my %nums; foreach (split(/ /)) { $nums{$_} += 1; }; foreach (sort {$b <=> $a} keys %nums) { print "$_ $nums{$_} " }; print "\n"; }' 100 3 99 2 26 1 25 1 24 2 
  • bairra inviewtida no início de um command
  • Como cp file e criair diretório, se não existe?
  • Como adicionair linha ao file de configuration do sistema com sudo?
  • Como exibir certas linhas de um file de text no Linux?
  • Faça ls imprimir tudo em uma linha (como no terminal)
  • Exclua todas as contas de user no server blade HP usando hponcfg e RIBCL
  • Como posso gravair commands do Linux?
  • Fechair automaticamente a connection netcat
  • monitorair / monitorair a saída de um command linux
  • Posso chamair pushd / popd e impedi-lo de imprimir a stack?
  • Obtendo informações da CPU da linha de command no Mac OS X