Yanıtlar:
Bunu anladım; biri uniq
bireyin seçenekleri olan -c
'oluş sayısına göre önek hatları',:
$ uniq -c
sort | uniq
A \ A \ A \ B \ A \ CC
, sadece çıktısını uniq -c
gösterir A 3
ve sonra gösterirdi A 1
. Önce sıralama, tüm özdeş satırların birlikte gruplandırılmasını garanti eder
Buraya benzer bir problemle geldim. Bundan biraz daha ileri bir komutu bir araya getirmeyi başardım, umarım diğerleri için faydalıdır.
Steven D'nin yukarıdaki açıklamalarda dediği gibi, uniq
sadece bitişik tekrarlayan satırları sayar, bu yüzden önce satırları sıralamanız gerekir. Ondan sonra benzersiz çizgileri bulduktan sonra tekrar sıralayın, böylece en çok ortaya çıkan çizgiler en üsttedir.
sort file.txt | uniq -c | sort -nr > output.txt
Çıktı dosyaya yönlendirilir output.txt
. Sonuçları komut satırında görmek istiyorsanız, yönlendirmeyi kaldırın ve en son sort -n
satırın en alt satırda, yani kesinlikle ekranda olacak şekilde son komutu değiştirin .
cat file.txt | sort
sadece birlikte sort file.txt
. :)
cat
daha ilginç bir şeyle hızlıca değiştiremeyeceğinizdir . Bilirsin, biliyorsun, hayır yok cat
.
< file.txt sort | uniq -c
. Bu düzenlemesi kolaydır ve gereksiz olanı engeller cat
.
uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'