Linux’ta bir dosyadaki benzersiz satırları saymak yaygın bir işlemdir. Bu makale, sort
ve uniq
kullanarak ve awk
kullanarak iki verimli komut satırı yöntemini sunmaktadır.
İçindekiler
sort
ve uniq
ile Benzersiz Satırları Sayma
Bu yöntem, basit bir yaklaşım için sort
ve uniq
‘in gücünü birleştirir. sort
satırları alfabetik olarak sıralar; bu, yalnızca ardışık aynı satırları sayan uniq
için bir ön koşuldur. uniq
‘teki -c
seçeneği, her satıra bir sayı öneki ekler.
file.txt
dosyasındaki benzersiz satırları saymak için:
sort file.txt | uniq -c
Bu, her benzersiz satırı sayısıyla birlikte görüntüler. Benzersiz satırların toplam sayısını almak için çıktıyı wc -l
‘ye yönlendirin:
sort file.txt | uniq -c | wc -l
Örnek:
file.txt
şunları içeriyorsa:
apple
banana
apple
orange
banana
apple
sort file.txt | uniq -c
şu çıktıyı verir:
3 apple
2 banana
1 orange
Ve sort file.txt | uniq -c | wc -l
şu çıktıyı verir:
3
awk
ile Benzersiz Satırları Sayma
awk
, özellikle daha karmaşık senaryolar için kullanışlı, esnek bir çözüm sunar. Bu yöntem, benzersiz satırları ve sayımlarını izlemek için ilişkisel bir dizi kullanır.
Benzersiz satırları sayıp sayılarıyla birlikte görüntülemek için:
awk '{count[$0]++} END {for (line in count) print count[line], line}' file.txt
Bu komut dosyası, satırı anahtar olarak kullanarak count
dizisindeki her satırın sayımını artırır. END
bloğu, diziyi yineleyerek her satırın sayımını ve satırın kendisini yazdırır.
Yalnızca benzersiz satırların toplam sayısını almak için:
awk '{count[$0]++} END {print length(count)}' file.txt
Bu, benzersiz satır sayısını (dizinin boyutu) doğrudan çıktılamak için length(count)
‘ı kullanır.
Örnek:
Aynı file.txt
‘yi kullanarak, ilk awk
komutu sort | uniq -c
yöntemi ile aynı çıktıyı üretir. İkinci awk
komutu, üç benzersiz satırı gösteren 3
çıktısını verir.
İhtiyaçlarınıza en uygun yöntemi seçin. sort
ve uniq
basit görevler için daha basittir; awk
karmaşık senaryolar için daha fazla esneklik sağlar.