Örneklerle Linux’ta Sort Komutu Nasıl Kullanılır

Merhabalar,

 

Linux’ta SORT komutu, kullanılan seçeneğe göre kaydı belirli bir sırada düzenlemek için kullanılır. Dosyadaki verileri satır satır sıralamaya yardımcı olur. SORT komutu, komutların sonucunda izlediği farklı özelliklere sahiptir. Birincisi, numara içeren satırların alfabetik satırlardan önce gelmesidir. Küçük harfli satırlar, büyük harfli aynı karakterden önce görüntülenir.

Örnek:

Bu, isim verilerine sahip bir dosyayı sıralamanın basit bir örneğidir. Bu isimler sıralı değildir ve bunları bir sıra biçiminde yapmak için sıralamanız gerekir.

Bu nedenle, name.txt adlı bir dosya düşünün. Ekteki komutu kullanarak dosyadaki içeriği görüntüleyeceğiz.İlk önce sıralamadan önce dosyayı görütüleyelim.

cat name.txt

 

Şimdi sıralama yapalım.

sort name.txt

 

 

Çıktıyı Başka Bir Dosyaya Kaydet:

sort komutunu kullanarak, sonucunun yalnızca görüntülendiğini ancak kaydedilmediğini anlayacaksınız. Sonucu yakalamak için saklamamız gerekir. Bunun için sort komutunda –o seçeneği ile kullanabiliriz.

İçinde isimleri içeren name.txt adlı bir dosyamız mevcut. Bunları sıralamak ve elde edilen verileri ayrı bir dosyaya kaydetmek istiyoruz.Sıralanmış dosyalarıı sort.txt adlı bir dosya oluşturulursun ve ilgili çıktı bu dosyada saklansın istiyorum. name.txt’nin verileri sort dosyasına aktarılır ve ardından –o yardımı ile ilgili veriler sıralanır. Verileri cat komutunu kullanarak ekrana yazdırabiliriz.

 

İlk önce sıralanmamış halini yazdıralım.

cat name.txt

 

ilk önce sıralıyorum ve sort.txt dosyasına aktarıyorum hadi yapalım.Ve sonra dosyanın oluşup oluşmadığını kontrol ediyorum.

sort name.txt > sort.txt

sonra

ls -l

 

yukarıda sort dosyasının oluştuğunu görüyorum.Şimdi dosyayı görüntüleyelim.

cat sort.txt

 

Bunu diğer şekilde nasıl yaparız.name.txt dosyasını sıralar ve sort.txt dosyasına yazabiliriz.

sort -o sort.txt name.txt

 

Column Number (Sütun Numarasına) Göre Sırala:

Sıralama sadece tek bir sütunda yapılmaz. İkinci sütun nedeniyle bir sütunu sıralayabiliriz. Öğrencilerin isim ve notlarının bulunduğu bir metin dosyası örneği verelim. Bunları artan düzende düzenlemek istiyoruz. Bu yüzden komutta –k anahtar kelimesini kullanacağız. –n sayısal sıralama için kullanılır.

ilk önce mevcut dosyayı kontrol edelim.

cat not.txt

 

Şimdi sıralayalım.

sort -k 2n not.txt

 

İki sütun olduğundan, n ile 2 kullanılır.

Bir Dosyanın Sıralanmış Durumunu Kontrol Etme:

Mevcut dosyanın sıralanıp sıralanmadığından emin değilseniz, karışıklığı netleştiren ve mesajı görüntüleyen komutu kullanarak bu şüpheyi ortadan kaldırın. İki temel örnek üzerinden ilerleyeceğiz.

 

Sıralanmamış Veri:

Komut, –c anahtar sözcüğünü kullanacaktır. Bu, dosyadaki verilerin sıralanıp sıralanmadığını kontrol edecektir. Veriler sıralanmamışsa, çıktı, dosyada sıralamanın bozulduğu ilk satır numarasını ve ayrıca satırdaki ifadeyi görüntüler.

sort -c name.txt

 

Yukarıda görüldüğü gibi 5 satırdan sonra sıralama bozulmuş.5. satıra kadar sıralı gözüküyor.Sonra Kadir isminde sıralama bozulmuş.

 

 

 

Sıralanmış Veriler:

Bu durumda, veriler zaten organize edildiğinde başka bir şey yapmanıza gerek yoktur.Şimdi sort.txt dosyası üzerinde işlem yapalım.

 

Sort.txt dosyası içindeki veriler zaten sıralanmış olduğunundan hiçbir mesajı döndürmeyecektir.

sort -c sort.txt

 

Yinelenen Öğeleri Kaldırma:

En  kullanışlı seçeneklerden biri  bu, bir dosyadaki tekrarlanan sözcüklerin kaldırılmasına ve dosya öğesinin de düzenlenmesine yardımcı olur. Ayrıca dosyadaki verilerin tutarlılığını da korur.

name.txt dosyasının içinde bir çok isim var, ancak isimler birden çok kez tekrarlanmış. Sort komutu, tekrarı ve ilişkililiği ortadan kaldırmak için –u anahtar sözcüğünü kullanır.

cat name.txt

 

Artık yinelenen öğelerin çıktıdan kaldırıldığını ve verilerin de sıralandığını görebilirsiniz.

sort -u name2.txt

 

 

Komutu Pipe Şeklinde Diğer Komutlarla Birlikte Kullanma:

Dosya boyutlarına ilişkin dizinin listesini sağlayarak dosyanın verilerini sıralamak istersek, dizinin ilgili tüm verilerini listeleyeceğiz. Komutta ‘ls’ kullanılır ve -l parametrei onu görüntüler. Pipe kullanımı, dosyaların düzenli bir şekilde görüntülenmesine yardımcı olacaktır.Aşağıdaki dosyaları boyut olarak küçükten büyüğe doğru sıraladı.

ls -l | sort -nk5

 

 

Rastgele Sıralama:

Bazen herhangi bir işlevi yerine getirirken düzenlemeyi bozabilirsiniz. Verileri herhangi bir sırayla düzenlemek istiyorsanız ve sıralama için herhangi bir kriter yoksa, rastgele sıralama tercih edilir.isimleri içeren sort.txt dosyasını ela alalım.

ilk önce  dosyayı yazdıralım.

cat sort.txt

 

sort -R sort.txt

İlgili çıktı, dosyanın sıralandığını ve öğelerin farklı bir sırada düzenlendiğini gösterir.Aşağıda görüldüğü gibi sıralamada herhangi bir düzen yok.

 

 

Birden Çok Dosyanın Verilerini Sıralama:

Sıralamanın en kullanışlı komutlarından biri, aynı anda farklı dosyaların verilerini sıralamaktır. Bu, find komutu kullanılarak yapılabilir. find komutunun çıktısı, bir sıralama komutu  sort komutu için  pipe aracılığı ile bir girdi görevi görecektir. Find anahtar kelimesi her satırda sadece bir dosya vermek için kullanılır veya her kelimeden sonra bir break kullandığını söyleyebiliriz.

Örneğin, name1.txt, name2.txt ve name3.txt adlı üç dosyayı ele alalım. Burada “?” “örnek” kelimesinin takip ettiği herhangi bir sayıyı temsil eder. Find, üç dosyayı da getirecek ve verileri, Pipe ile ifade edilen anlamı ile bir sonraki komuta iletecek.Sort komutu yardımıyla sıralanacak:

Çıktı, tüm name.txt serisi dosyalarının verilerinin görüntülendiğini ve alfabetik olarak düzenlenip düzenlendiğini gösterir.

find -name 'name?.txt' -print0 | sort --files0-from=-

 

Katıl ile Sırala

Şimdi, bu eğitimde daha önce tartışılanlardan oldukça farklı bir örnek sunuyoruz. Sıralamaya ek olarak, birleştirme kullandık. Bu işlem, her iki dosya da önce sıralanacak ve ardından bir join anahtar sözcüğü kullanılarak birleştirilecek şekilde yapılır.

join etmek istediğiniz iki dosyayı düşünelim.

Şimdi verilen kavramı uygulamak için aşağıda belirtilen sorguyu kullanalım.

cat join <(sort name1.txt) <(sort name2.txt)

 

Yukarıda her iki dosyadaki verilerin sıralanmış biçimde birleştirildiğini görebilirsiniz.

Sıralamayı Kullanarak Dosyaları Karşılaştırma:

İki dosyayı karşılaştırma kavramını da benimseyebiliriz. Teknik, katılmak için kullanılanla aynıdır. Önce iki dosya sıralanır ve daha sonra içindeki veriler karşılaştırılır.

Önceki örnekte tartışıldığı gibi aynı iki dosyayı düşünün. name1.txt ve name4.txt

comm <(sort name1.txt) <(sort name4.txt)

 

Bu yazımızda sort komutunun temel işlevlerinden ve seçeneklerinden bahsettik. Linux sort komutu, verilerin bakımında ve dosyalardan tüm gereksiz öğelerin filtrelenmesinde çok faydalıdır.

 

Bu eğitim yazımızın sonuna geldik.Umarım sizler için faydalı olur.

 

Bu eğiticiye oy ver
[Total: 3 Average: 5]
Firat CANOĞLU TAĞ