Risposte:
L'avevo capito; una delle uniq
opzioni è -c
, per "prefisso righe per il numero di occorrenze":
$ uniq -c
sort | uniq
A \ A \ A \ B \ A \ CC
, l'output di just uniq -c
verrebbe mostrato A 3
e successivamente mostrato A 1
. Smistamento primo, garantirà tutte le linee identiche sono raggruppati
Sono appena venuto qui con un problema simile. Da questo, sono riuscito a mettere insieme un comando leggermente più avanzato, che spero sia utile per gli altri.
Come ha detto Steven D nei commenti sopra, uniq
conta solo le linee di ripetizione adiacenti, quindi devi prima ordinare le linee. Dopodiché troviamo le linee uniche quindi riordiniamo in modo che le linee più ricorrenti siano in cima.
sort file.txt | uniq -c | sort -nr > output.txt
L'output viene reindirizzato nel file output.txt
. Se vuoi solo visualizzare i risultati sulla riga di comando, rimuovi il reindirizzamento e modifica l'ultimo comando in sort -n
modo che la riga più comune sia in fondo, ovvero sicuramente ancora sullo schermo.
cat file.txt | sort
con solo sort file.txt
. :)
cat
con qualcosa di più interessante. Dal momento che, sai, non c'è cat
.
< file.txt sort | uniq -c
. Questo è facile da modificare ed evita comunque il superfluo cat
.
uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'