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.