close

Sıralama (Unix)

Gezinmeye atla Aramaya atla
Image
sıralama -- yardım

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ğeri0 , verilerin önceden sıralanmış olup olmadığına veya sıralanmadıklarından farklı olmasına eşittir 0.
-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

  1. ^ Sıralama , Açık Grup Temel Spesifikasyonları Sayı 6'ya göre IEEE Std 1003.1 , 2004 Sürümü . 20 Mayıs 2008'de alındı .

İlgili öğeler

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ı .