Se eu tiver um arquivo de texto com o seguinte conteúdo
red apple
green apple
green apple
orange
orange
orange
Existe um comando ou script do Linux que posso usar para obter o seguinte resultado?
1 red apple
2 green apple
3 orange
linux
text
duplicates
timeon
fonte
fonte
-d
nota.uniq -c file
e caso o arquivo ainda não esteja classificado:
sort file | uniq -c
fonte
Tente isto
fonte
fonte
Você pode viver com uma lista ordenada em ordem alfabética:
?
ou
-u significa único, e a exclusividade só é alcançada por meio da classificação.
Uma solução que preserva a ordem:
e, com um arquivo
Os dois últimos removem apenas duplicatas, que seguem imediatamente - o que se encaixa no seu exemplo.
Vai imprimir duas maçãs, divididas por uma banana.
fonte
Para obter apenas uma contagem:
Para obter uma contagem classificada:
EDITAR
Aha, isso NÃO foi ao longo dos limites das palavras, meu mal. Este é o comando a ser usado para linhas completas:
fonte
Aqui está um script python simples usando o tipo Counter . A vantagem é que isso não exige a classificação do arquivo, basicamente usando memória zero:
Resultado:
ou você pode usar uma linha simples:
fonte