Linux ile verileri sıralamak için kullanılan sort komutunu inceliyoruz

Önceki yazımızda disk yönetimi için gerekli temel komutların kullanımından bahsettik. Bu komutlardan biri olan du komutuyla sistemdeki dosyaların ne kadar yer kapladığını görebiliyorduk. Karşımıza çıkan onlarca belki binlerce sonuç nedeniyle dosyaların hangisinin büyük olduğunu anlamak ve verileri yönetmek zorlaşabilir. İşte bu gibi durumlarda büyük veriyi yönetmemize yardımcı olacak birkaç komut satırı aracı imdadımıza yetişiyor. Bu yazımızda verileri sıralamak için kullanılacak sort komutu ve kullanımını inceleyeceğiz.

Sort Komutu ile Verileri Sıralamak

Büyük miktarda veriyle çalışırken kullanılan popüler komutlardan biri sort komutudur. sort komutu verileri belirlenen ölçütlere göre sıralar. Varsayılan olarak, belirtilen dil için standart sıralama kurallarını kullanarak işlem yapar.

İçerisinde bazı kelimelerin olduğu “kelime_sırala.txt” adlı dosyasının içeriğine cat komutu ile göz atalım;

cat komutuyla dosya içeriğine göz atıyoruz, veriler karmaşık bir şekilde sıralanmış.

Şimdi bu dosya içeriğindeki verileri sort komutu ile sıralayalım;

sort komutu dosya içeriğindeki verileri harf sırasına göre sıraladı.

Beklendiği şekilde kelimeleri harf sırasına göre sıraladı.

Şimdi sort komutunun içerisinde sayılar bulunan bir dosyayı nasıl sıralayacağına bakalım. Önce cat komutuyla içeriğine bakıp ardından sıralama yapacağız;

içerisinde sayılar bulunan dosya içeriğine göz atıp sıralama yapmasını istedik

Bu defa işler beklendiği gibi gitmedi! Sayıları sıralarken numerik bir sıralama yapması için komutla birlikte “-n” parametresini kullanmalıyız, aksi halde önceliği sayının değerine bakmaksızın ilk hanesindeki değere bakarak sıralama yapacaktır. “-n” parametresi kullanarak yeniden deneyelim;

-n parametresi sort komutunun numerik sıralama yapmasını sağlar

sort komutuyla kullanabileceğimiz oldukça etkili başka parametreler de bulunmaktadır.

Örneğin, içerisinde ay bilgisinin olduğu bir dosyayı aylara göre sıralaması için “-M” parametresi kullanılabilir.

Şİimdi parametreli ve parametresiz kullanımına bakalım;

-M parametresi aylara göre sıralama yapar

Ayları tanımasının bize ne faydası olacak derseniz eğer; aylara göre istatistik tutan bir dosya ya da tarihlerin yer aldığı bir log dosyasından veri çekerken oldukça işe yarar bir parametre olacaktır.

Sıralamayı ters çevirmek için “-r” parametresini kullanabilirsiniz.

Sayı örneğini ters sıralayalım;

“-r” ve “-n” parametrelerini dilerseniz “-rn” şeklinde birlikte de kullanabilirsiniz.

“sort” ile kullanılabilecek diğer parametre bilgileri için yardım parametresini kullanabilirsiniz;

Dosya içinden veri seçmek

sort komutuna çok kullanışlı bir örnek verelim. “-t” parametresi belirli ayraçla (virgül, nokta, iki nokta gibi) ayrılarak sıralanmış verilerdeki ayracı; “-k” parametresi ise bu ayraç baz alınarak kaçıncı alanı sıralayacağını belirler.

Örneğin, adları ve soyadları, sıra numaraları ve katıldıkları illerin yer aldığı bir veri dosyasındaki bilgiler “:” (iki nokta) ile ayrılmış olsun; bu verileri sıra numaralarına göre sıralamak istiyoruz.

Önce cat komutuyla içeriğine bakıp sonra sıralayalım;

Listeyi “:” simgesini baz alarak ikinci veriye göre (ya da ikinci sütun da diyebiliriz) sıralamış olduk. Listede eğer 10’un üzerinde veri olsaydı sıralama karışabilirdi. Bu nedenle “-n” parametresini de ekleyerek nümerik bir sıralama olduğunu bildirmek gerekecekti;

Sonuçları başka bir komuta aktarmak

Şimdi sort komutu ile yapılabilecek daha ileri düzey bir işlem yapacağız.

Öncelikle du komutunu “-B” parametresiyle kullanınca dosya ve klasör boyutlarını istediğimiz türden görüntüleyebiliriz (örneğin K kilobayt, M megabayt, G gigabayt gibi). “-BK” parametresi dosyaları kilobayt cinsinden gösterecektir.  Yıldız simgesinin (*) de tüm ifadeleri kapsayan bir simge olduğunu anlatmıştık. Dolayısıyla kullanımdaki * ifadesi tüm dosyaları göster anlamına gelecek.

du komutunun ardından buradan aldığımız sonuçları sort komutuna aktaracağız. sort komutunun sonuçları büyükten küçüğe ve nümerik sıralaması için “-nr” parametresini de kullanacağız.

Bir komut vererek aldığımız çıktıları bir başka komuta aktarmak için “|” pipe simgesini kullanıyoruz.

Genel kullanımı şu şekilde;

Bu şekilde du komutunun çıktısını sort komutuna aktararak dosyaları boyutlarına göre sıralayabiliriz:

Önce sadece du komut çıktısını görelim;

du komutuyla beraber kullanılan -BK parametresi sonuçları kilobayt cinsinden verir

Kilobayt cinsinden boyutları görüyoruz, ancak bunlar dosya boyutuna göre sıralanmamış. Şimdi sonucu sort komutuna aktaralım;

İstediğimiz gibi oldu.

Komut çıktılarını başka komutlara aktararak ve bu komutların parametrelerini kullanarak binlerce kullanışlı iş çıkarabiliriz.

Linux yazılarımıza dosya içeriğinde arama yapma ve kullanımı konusu ile devam edeceğiz. Eski yazılara, masaüstü kullanıcıları sağ taraftaki alandan, mobil kullanıcılar ise sayfanın altındaki alandan ulaşabilirler.

BİR CEVAP BIRAK