Sıralama (Unix)
sort , Unix ve Unix benzeri işletim sistemlerinin ve daha genel olarak bir veya daha fazla metin dosyasını (veya standart girdiyi ) okuyan ve satırları alfabetik olarak veya belirtilen kriterlere göre sıralayan, üreten POSIX [1] sistemlerinin bir komutudur. standart çıktıda veya bir dosyada sonuç . Bir filtre türüdür .
sort ayrıca okunan satırların belirli bir ölçüte göre sıralanmış olduğunu da doğrulayabilir. Bu durumda hiçbir sonuç üretmez ve çıktı değeri0 , verilerin önceden sıralanmış olup olmadığına eşit veya sıralanmamışsa daha büyük 0olur.
sort , uniq komutuna benzer şekilde yinelenen satırları doğrudan kaldırabilir .
Sözdizimi
Sıralamanın genel sözdizimi aşağıdaki gibidir:
sırala [ seçenekler ] [-] [ dosya1 [ dosya2 ...]]
İsteğe bağlı dosya parametreleri , sıralanacak satırların okunacağı metin dosyalarını belirtir. Birden fazla dosya belirtilirse, bunlar ayrı ayrı sıralanır ve ardından nihai sonucun da sıralanması için satırlar birleştirilir. Dosya belirtilmemişse, sıralanacak satırlar standart girdiden okunur .
Çift çizgi --(isteğe bağlı), aşağıdaki parametrelerin seçenek olarak kabul edilmeyeceğini belirtir.
Seçenekler
Ana seçenekler arasında:
-c- Okuma satırlarının önceden belirlenmiş kriterlere göre sıralandığını kontrol edin. Bu durumda komut mesaj üretmez ve çıktı değeri
0, verilerin önceden sıralanmış olup olmadığına veya sıralanmadıklarından farklı olmasına eşittir0. -m- Belirtilen dosyaların zaten sıralandığını varsayar ve satırlarını birleştirmeye devam eder.
-o nome_file- Sonucu standart çıktı yerine belirtilen dosyaya yazar .
-u- Sonuçtan yinelenen satırları kaldırın ( uniq komutunun yaptığına benzer şekilde ).
-f- Büyük ve küçük harfler arasında ayrım yapmaz.
-r- En büyük değerden başlayarak sonuçlar üreterek sipariş yönünü tersine çevirir.
-n- Alfabetik yerine sayısal olarak sıralayın.
-i- Yazdırılmayan karakterleri yoksay.
-k chiave_di_ordinamento- Sıralama anahtarı olarak kullanılacak satırın bir bölümünü belirtir. Kademeli olarak kullanılacak birden çok sıralama anahtarı tanımlamak için bu seçeneği birden çok kez belirtebilirsiniz .
-t carattere- Sıralama anahtarlarını tanımlarken (varsayılan değer yerine) alan ayırıcı olarak kullanılacak karakteri belirtir.
GNU sort sürümü , diğerlerinin yanı sıra aşağıdaki seçenekleri de sunar :
-g- Standart C dili kitaplığı işlevi tarafından tanınan sayıları ( örneğin bilimsel gösterimde ifade edilen sayılar) kabul ederek sayısal olarak da sıralar.
strtod() -s- Sabit bir sıralama gerçekleştirir (aynı sıralama tuşlarıyla satırların orijinal sırasını korur).
Sıralama Tuşları
Bu seçenek ile -ksatırın bir bölümünde bir sıralama anahtarı tanımlamak mümkündür. Birden çok seçenek belirleyerek -k, kademeli olarak kullanılacak birden çok sıralama anahtarı tanımlayabilirsiniz.
Sıralama anahtarının sözdizimi aşağıdaki gibidir:
numero_campo_iniziale[.indice_primo_carattere][tipo][,numero_campo_finale[.indice_ultimo_carattere][tipo]]
initial_field_number1 , anahtara dahil edilecek alanın numarasını ( 'den başlayarak) gösteren sayısal bir değerdir ve index_first_character , dikkate alınacak alan içindeki ilk karakterin ( 'den başlayarak 1) dizinidir.
Benzer şekilde, final_field_number belirtilirse, anahtara dahil edilecek son alanı belirtir ve last_character_index , söz konusu alanın son karakterinin indeksidir.
Her ikisini de , belirli bir alan için gerçekleştirilecek sıralamanın türünü belirten bir karakter olan type izleyebilir (örneğin ,n sayısal bir sıralama belirtmek, fbüyük ve küçük harf arasındaki farkı dikkate almamayı belirtmek, rters çevirmek için). sıralama).
Satırın alanlara bölünmesi, seçeneği ile belirtilen ayırıcı karakter bazında gerçekleştirilir -t. Yokluğunda, herhangi bir boşluk dizisi ayırıcı olarak kabul edilir.
Örnekler
Alfabetik sıralama
Tüm satır için alfabetik olarak sıralayın:
$ kedi örneği.txt John 200 30 Charles 100 Bruno 5 $ sıralama örneği.txt 30 Bruno 5 Charles 100 John 200
_
İkinci alanı anahtar olarak kullanarak sayısal olarak sıralayın:
$ kedi örneği.txt John 200 30 Charles 100 Bruno 5 $ sıralama -k 2 -n örnek.txt Bruno 5 30 Charles 100 John 200
Dosyaları ve dizinleri azalan boyuta göre sıralayın (beşinci sütun):
$ ls -l | sıralama -n -r -k 5 -rw-r - r-- 1 kök kök 1057 1 Mart 20:12 halka + yıldız -rw-r - r-- 1 kök kök 727 1 Mart 20:12 A_star -rw-r - r-- 1 kök kök 535 1 Mart 20:12 star2 -rw-r - r-- 1 kök kök 505 1 Mart 20:12 spirals_and_stars -rw-r - r-- 1 kök kök 503 1 Mart 20:12 eğrileri -rw-r - r-- 1 kök kök 475 1 mar 20:12 aynı şekilde -rw-r - r-- 1 kök kök 458 1 Mart 20:12 halka -rw-r - r-- 1 kök kök 415 1 Mart 20:12 yıldız -rw-r - r-- 1 kök kök 387 1 Mart 20:12 sarmal -rw-r - r-- 1 kök kök 377 1 Mar 20:12 polys
Notlar
İlgili öğeler
- sıralama algoritması
- uniq - Sıralanmış bir dosyadaki yinelenen satırları kaldırır.
Dış bağlantılar
- Sırala : Metin dosyalarını sırala , GNU Texutils kılavuzunda . 20 Mayıs 2008'de alındı .
- Sırala , Linux Man Pages üzerinde . 21 Mayıs 2008'de alındı .
- ( EN ) sıralama (1) , Solaris 10 Referans Kılavuzu Koleksiyon - kılavuz sayfalarında . 21 Mayıs 2008'de alındı .