7 İlginç Linux 'sıralama' Komut Örneği - Bölüm 2
Son makalemizde 'sort' komutunun çeşitli örneklerini ele aldık. Eğer kaçırdıysanız aşağıdaki linkten takip edebilirsiniz. Bu yazımızda bir önceki yazımızda kaldığımız yerden devam ederek komutun geri kalan yönlerini ele alacağız. Bu şekilde, her iki makale birlikte Linux 'sort' komutu için kapsamlı bir rehber görevi görecektir.
Devam etmeden önce lütfen 'month.txt' adında bir metin dosyası oluşturun ve bu dosyayı aşağıda sağlanan verilerle doldurun.
echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt
15. Dosya İçeriğini Aya Göre Sıralama
Aşağıdaki komut, "month.txt" dosyasının içeriğini, '<' komutunu veren '-M'
seçeneğini kullanarak ayın kısaltmasına veya adına göre kronolojik sırayla sıralar. Verileri tarih olarak ele almak ve buna göre sıralamak için güçlü>sort' komutunu kullanın.
sort -M month.txt
16. Çıktıyı İnsan Tarafından Okunabilir Formatta Dosya Boyutuna Göre Sıralama
Aşağıdaki komut, iki görevi gerçekleştirmek için "ls" ve "sort" komutlarını birleştirir. İlk olarak, kullanıcının ana dizininin içeriğini uzun formatta listeler ve ardından bu dizin listesini, dosya boyutlarını insan tarafından okunabilir bir formatta yazdırmak için 'sort' komutuna yönlendirir, böylece dosyadaki en büyük ve en küçük dosyaların tanımlanmasını kolaylaştırır. Rehber.
ls -l /home/$USER | sort -h -k5
17. Sıralanan Dosyaların Tutarlılık Açısından Kontrol Edilmesi
Önceki makalede iki metin dosyası oluşturduk: 4 numaralı örnekte 'sorted.txt' ve 6 numaralı örnekte 'lsl.txt'. sorted.txt' zaten sıralanmışken, 'lsl.txt' sıralanmamış.
Her iki dosyanın da sıralama durumunu doğrulamak için 'sort' komutunu kullanacağız; bu, 'sorted.txt' dosyasının doğru sırada kalıp kalmadığını doğrulamamızı sağlayacak ve 'lsl.txt'nin sıralama gerektirip gerektirmediği.
sort -c sorted.txt
0 değerini döndürmesi, dosyanın sıralandığı ve herhangi bir çakışma olmadığı anlamına gelir.
sort -c lsl.txt
18. Dosyada Boşluk Kullanılmadığında Sınırlayıcıların Kullanımı
Kelimeler arasındaki ayırıcı (ayırıcı) bir boşluksa, "sıralama" komutu yatay boşluktan sonraki her şeyi otomatik olarak yeni bir kelime olarak yorumlar. Peki sınırlayıcı boşluk olmadığında ne olur?
İçeriği, '|'
veya '\'
veya gibi boşluk dışında herhangi bir şeyle ayrılmış bir metin dosyası düşünün '+'
veya '.'
veya ...
İçeriklerin +
ile ayrıldığı bir metin dosyası oluşturun. Dosyanın içeriğini kontrol etmek için cat komutunu kullanın.
echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
cat delimiter.txt
Şimdi bu dosyayı sayısal olan 1. alana göre sıralayın.
sort -t '+' -nk1 delimiter.txt
İkincisi sayısal olmayan 4. alanı temel alır.
Sınırlayıcı Sekme ise, yukarıdaki örnekte gösterildiği gibi '+'
yerine $'\t'
kullanabilirsiniz.
19. Çıktıyı Dosya Boyutuna Göre Rastgele Sıralama
Ana dizininiz için ls -l komutunun çıktısını, 'veri miktarını' temsil eden beşinci sütuna göre rastgele sırayla sıralayın.
ls -l /home/avi/ | sort -k5 -R
Yukarıdaki betiği her çalıştırdığınızda, sonuç rastgele oluşturulduğu için muhtemelen farklı bir sonuç elde edersiniz.
Son makaledeki Kural numarası – 2'den de anlaşılacağı üzere, sort komutu büyük harf yerine küçük harfle başlayan satırları tercih eder. Ayrıca son makaledeki dizüstü bilgisayar dizesinin "DİZÜSTÜ BİLGİSAYAR" dizesinden önce göründüğü örnek 3'ü de inceleyin.
20. Varsayılan Sıralama Tercihlerini Geçersiz Kılma
Varsayılan sıralama tercihi nasıl geçersiz kılınır? Varsayılan sıralama tercihini geçersiz kılmadan önce, 'LC_ALL'
ortam değişkenini 'C'
'ye aktarmamız gerekiyor.
Bunu yapmak için komut satırı isteminizde aşağıdaki kodu çalıştırın.
export LC_ALL=C
Daha sonra 'tecmint.txt' metin dosyasını varsayılan sıralama tercihini geçersiz kılarak sıralayın.
sort tecmint.txt
Çıktıyı örnek 3'te elde ettiğiniz çıktıyla karşılaştırmayı unutmayın ve ayrıca '-f
' yani '--ignore-' seçeneğini de kullanabilirsiniz. case
' komutunu kullanarak daha organize bir çıktı elde edebilirsiniz.
sort -f tecmint.txt
21. İki Giriş Dosyasını Tek Bir İşlemde Birleştirmek
İki giriş dosyasında "sort" komutunu çalıştırıp bunları tek seferde birleştirmeye ne dersiniz?
'Dosya1.txt' ve 'dosya2.txt' adında iki metin dosyası oluşturalım ve bunları bazı verilerle dolduralım. 'file1.txt' dosyasına sayıları aşağıda gösterildiği gibi ekleyeceğiz. Dosyanın içeriğini incelemek için cat komutunu da kullanacağız.
echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt
Ve ikinci 'file2.txt' dosyasını aşağıdaki gibi bazı verilerle doldurun.
echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt
Şimdi her iki dosyanın çıktısını sıralayın ve birleştirin.
join <(sort -n file1.txt) <(sort file2.txt)
Çözüm
Sonuç olarak bu makale, Linux'taki "sort" komutunun çeşitli yönlerini araştırdı. Alfabetik sıraya göre temel sıralamayla başladık, sayısal ve tarihe dayalı sıralamaya geçtik ve hatta özel sınırlayıcılara da değindik. Ayrıca ihtiyaçlarımıza uyacak şekilde varsayılan sıralama tercihlerini nasıl geçersiz kılacağımızı da öğrendik.
Ayrıca, bir dosyanın zaten sıralanıp sıralanmadığını kontrol etmeye ve birden fazla girdi dosyası için 'sıralama' işlemlerini birleştirmeye yönelik teknikleri tartıştık. Burada edinilen bilgilerle, Linux ortamında verileri verimli bir şekilde sıralamak ve düzenlemek için güçlü bir araca sahipsiniz.
Bu makalenin komut satırı çalışmalarınız için anlayışlı ve yararlı olduğunu umuyoruz. Linux becerilerinizi geliştirmek için keşfetmeye, öğrenmeye ve 'sıralama' sanatında ustalaşmaya devam edin.