man/text
man · Metin İşleme

$ sort

Bölüm 1 · Metin İşleme

metin ve ikili dosyaların kayıtlarını (satırlarını) sıralar veya birleştirir

Özet

sort [-bcCdfghiRMmnrsuVz] [-k alan1[,alan2]] [-S bellek_boyutu] [-T dizin] [-t karakter] [-o çıktı] [dosya ...]
sort --help
sort --version

Açıklama

sort aracı, belirtilen dosyaların satırlarını sıralı biçimde standart çıktıya yazar.

Dosya belirtilmezse veya dosya adı - ise standart girdi okunur.

Temel Seçenekler

  • -c, --check, -C, --check=silent|quiet: Girişin sıralı olup olmadığını denetler. -C veya --check=silent|quiet kullanılırsa uyarı yazdırılmaz.
  • -m, --merge: Zaten sıralı olduğu varsayılan dosyaları birleştirir; ek sıralama yapmaz.
  • -o çıktı, --output=çıktı: Sonucu standart çıktı yerine belirtilen dosyaya yazar. Çıktı dosyası, giriş dosyalarından biriyle aynı olabilir.
  • -S boyut, --buffer-size=boyut: Bellekte tutulacak sıralama arabelleğinin boyutunu belirtir.
  • -T dizin, --temporary-directory=dizin: Geçici dosyalar için kullanılacak dizini belirtir.
  • -u, --unique: Eşit karşılaştırılan satırlardan yalnızca birini çıktılar.
  • -s, --stable: Son çare karşılaştırmasını devre dışı bırakır; eşit karşılaştırılan satırların göreli sırası korunur.
  • --version: Sürüm bilgisini yazdırır ve çıkar.
  • --help: Kullanım bilgisini yazdırır ve çıkar.

Sıralama Seçenekleri

  • -b, --ignore-leading-blanks: Başta gelen boşluk karakterlerini yok sayar.
  • -d, --dictionary-order: Karşılaştırmada yalnızca boşlukları ve alfasayısal karakterleri dikkate alır.
  • -f, --ignore-case: Küçük harfleri büyük harf eşdeğerleri gibi değerlendirir.
  • -g, --general-numeric-sort: Genel sayısal karşılaştırma yapar. Bu seçenek, kayan noktalı sayıları ve özel değerleri işleyebilir.
  • -h, --human-numeric-sort: K, M, G gibi insan tarafından okunabilir boyut soneklerini sayısal olarak karşılaştırır.
  • -i, --ignore-nonprinting: Yazdırılamayan karakterleri yok sayar.
  • -M, --month-sort: Üç harfli ay adlarını takvim sırasına göre karşılaştırır.
  • -n, --numeric-sort: Sayısal karşılaştırma yapar.
  • -R, --random-sort: Satırları rastgele sıraya göre karşılaştırır.
  • -r, --reverse: Karşılaştırma sonucunu tersine çevirir.
  • -V, --version-sort: Sürüm numaralarını doğal sürüm sırasına göre karşılaştırır.

-V seçeneği özellikle sürüm numarası içeren dosya adlarında kullanışlıdır:

ls sort* | sort -V

Örnek çıktı:

sort-1.022.tgz
sort-1.23.tgz
sort-1.23.1.tgz
sort-1.024.tgz
sort-1.024.003.
sort-1.024.003.tgz
sort-1.024.07.tgz
sort-1.024.009.tgz

Alan ve Kayıt Sınırlayıcıları

  • -b, --ignore-leading-blanks: Alan başlangıçlarında baştaki boşlukları yok sayar. Bu seçenek genel sıralama seçeneği olarak da kullanılabilir.
  • -k alan1[,alan2], --key=alan1[,alan2]: Sıralama anahtarını belirtir. Anahtar, alan1 konumunda başlar ve alan2 konumunda biter. alan2 belirtilmezse anahtar satır sonuna kadar uzanır.
  • -t karakter, --field-separator=karakter: Alan ayırıcı karakterini belirtir. Varsayılan olarak boşluk karakterleri alan ayırıcı olarak kullanılır.
  • -z, --zero-terminated: Kayıtları yeni satır yerine NUL karakteriyle sonlandırır.

Diğer Seçenekler

  • --batch-size=sayı: Aynı anda birleştirilecek dosya sayısını sınırlar.
  • --compress-program=PROGRAM: Geçici dosyaları sıkıştırmak ve açmak için belirtilen programı kullanır.
  • --random-source=dosya: Rastgele sıralama için kullanılacak rastgele baytları belirtilen dosyadan okur.
  • --debug: Kullanılan sıralama anahtarlarını çıktıda işaretler ve olası kullanım sorunları hakkında uyarır.
  • --parallel=sayı: Sıralama için kullanılacak iş parçacığı sayısını belirtir.
  • --files0-from=dosya: Giriş dosyalarının adlarını belirtilen dosyadan, NUL ile ayrılmış olarak okur.
  • --radixsort: Radix sort algoritmasını kullanır.
  • --mergesort: Merge sort algoritmasını kullanır.
  • --qsort: Quick sort algoritmasını kullanır.
  • --heapsort: Heap sort algoritmasını kullanır.
  • --mmap: Giriş dosyalarını okumak için mmap(2) kullanır.

Terimler

sort girdiyi satırlara, satırları da alanlara ayırır.

  • dosya: Sıralanacak giriş dosyasıdır. Dosya belirtilmezse veya - verilirse standart girdi kullanılır.
  • alan: Varsayılan olarak boşluklarla ayrılmış bir satır parçasıdır.
  • anahtar: -k seçeneğiyle seçilen, karşılaştırmada kullanılacak alan aralığıdır.
  • alan1 ve alan2: alan[.karakter][seçenekler] biçiminde belirtilebilir. Alan numaraları 1'den başlar; karakter konumları da alan içinde 1'den başlar.

Ortam

Aşağıdaki ortam değişkenleri sort davranışını etkiler:

  • LC_COLLATE: Karakterlerin sıralama düzenini belirler.
  • LC_CTYPE: Karakter sınıflarını ve karakterlerin yorumlanmasını belirler.
  • LC_MESSAGES: Tanılama iletilerinin dilini belirler.
  • LC_NUMERIC: Sayısal karşılaştırmalarda kullanılan yerel ayarları belirler.
  • LC_TIME: Ay adlarının yorumlanmasını etkiler.
  • LC_ALL: Ayarlanmışsa diğer LC_* değişkenlerini geçersiz kılar.
  • LANG: LC_* değişkenleri ayarlanmamışsa varsayılan yerel ayarı sağlar.
  • TMPDIR: Geçici dosyalar için varsayılan dizini belirler. -T seçeneği bunu geçersiz kılar.
  • GNUSORT_NUMERIC_COMPATIBILITY: GNU sort ile sayısal karşılaştırma uyumluluğunu etkiler.
  • GNUSORT_COMPATIBLE_BLANKS: GNU sort ile boşluk karakteri yorumlama uyumluluğunu etkiler.

Dosyalar

  • /var/tmp/.bsdsort.PID.*: Geçici dosyalar.
  • /dev/random: Rastgele sıralama için varsayılan rastgelelik kaynağı.

Çıkış Durumu

  • 0: Başarılı.
  • 1: -c veya -C ile yapılan denetimde giriş sıralı değil.
  • 2: Hata oluştu.

Ayrıca Bakınız

comm(1), join(1), uniq(1)

Standartlar

sort aracı IEEE Std 1003.1-2008 ("POSIX.1") ile uyumludur.

Tarihçe

sort komutu AT&T UNIX'in ilk sürümlerinden beri bulunmaktadır.

Bu sort uygulaması FreeBSD için yeniden yazılmıştır ve macOS'te de kullanılmaktadır.

Yazarlar

sort uygulamasının bu sürümü Gabor Kovesdan <gabor@FreeBSD.org> ve Oleg Moskalenko <mom040267@gmail.com> tarafından yazılmıştır.

Notlar

Bu uygulamada giriş satırı uzunluğu için sabit bir sınır yoktur. Belleğe sığmayan veriler gerektiğinde geçici dosyalar üzerinden sıralanır.

Performans; yerel ayar, sıralama anahtarı sayısı, giriş büyüklüğü, geçici dizinin hızı ve seçilen algoritma gibi etkenlere bağlıdır.