Sıralanacak öğeler bir şekilde sınırlandırılmalıdır
Bir Linux metin dosyasındaki veriler, her öğe bir şekilde sınırlandırıldığı sürece sıralama komutuyla sıralanabilir. Sıklıkla, virgül ayrılmış bilgiler için ayırıcı olarak kullanılır.
Sıralama için Temel Kurallar
Sıralama komutu, sayısal ve alfabetik olarak sıralamak için satırları bir metin dosyasında yeniden düzenler. Sıralama komutu için varsayılan kurallar şunlardır:
- Bir numara ile başlayan metin, bir harfle başlayan metinden önce görünür; İlk önce alt sayılar.
- Alfabede görünen bir harfle başlayan ve diğer metin girişlerinin ilk harfinin, daha sonra alfabede görünen bir harfle başlayan metinden önce sıralanmış olan bir harfle başlayan metin.
- Metnin aynı harfin büyük ve küçük harfli örnekleriyle başladığı durumlarda, küçük harf örneği önce sıralanır.
Bir Metin Dosyasını Sıralama
Çizgileri ayrılmış bir Linux dosyasında sıralamak için sıralama komutunu şöyle kullanırsınız:
$ sort -k2 test.txtikinci sütunda başlayan karakterlere göre "test.txt" dosyasını sıralar (k2, ikinci sütuna karşılık gelir). Giriş dosyası içeriği varsayarsak:
1, Justin Timberlake, Başlık 545, Fiyat $ 7.30 2, Taylor Swift, Başlık 723, Fiyat $ 7.90 3, Mick Jagger, Başlık 610, Fiyat $ 7.90 4, Lady Gaga, Başlık 118, Fiyat $ 7.30 5, Johnny Nakit, Başlık 482, Fiyat $ 6.50 6, Elvis Presley, Başlık 335, Fiyat $ 7.30 7, John Lennon, Başlık 271, Fiyat $ 7.90 8, Michael Jackson, Başlık 373, Fiyat $ 5.50Bu örnekteki ikinci sütun ilk ve son adları içerdiğinden, sıralı çıktı, ikinci sütundaki her bireyin ilk isminin ilk harfi ile düzenlenir — Elvis, John, Johnny, Justin, Lady, Michael, Mick ve Taylor. , Aşağıda gösterildiği gibi:
6, Elvis Presley, Başlık 335, Fiyat $ 6.30 7, John Lennon, Başlık 271, Fiyat $ 7.90 5, Johnny Nakit, Başlık 482, Fiyat $ 6.50 1, Justin Timberlake, Başlık 545, Fiyat $ 6.30 4, Lady Gaga, Başlık 118, Fiyat $ 6.30 8, Michael Jackson, Başlık 373, Fiyat $ 5.50 3, Mick Jagger, Başlık 610, Fiyat $ 7.90 2, Taylor Swift, Başlık 723, Fiyat $ 7.90Dosyayı -k3 ile sıralarsanız (sütun 3'ten başlayarak Satır içeriği - Başlık numarası sütunu), çıktı:
4, Lady Gaga, Başlık 118, Fiyat $ 6.30 7, John Lennon, Başlık 271, Fiyat $ 7.90 6, Elvis Presley, Başlık 335, Fiyat $ 6.30 8, Michael Jackson, Başlık 373, Fiyat $ 5.50 5, Johnny Cash, Başlık 482, Fiyat $ 6.50 1, Justin Timberlake, Başlık 545, Fiyat $ 6.30 3, Mick Jagger, Başlık 610, Fiyat $ 7.90 2, Taylor Swift, Başlık 723, Fiyat $ 7.90ve
$ sort -k4 test.txtfiyatlara göre sıralanmış bir liste oluşturur:
8, Michael Jackson, Başlık 373, Fiyat $ 5.50 1, Justin Timberlake, Başlık 545, Fiyat $ 6.30 4, Lady Gaga, Başlık 118, Fiyat $ 6.30 6, Elvis Presley, Başlık 335, Fiyat $ 6.30 5, Johnny Cash, Başlık 482, Fiyat $ 6.50 2, Taylor Swift, Başlık 723, Fiyat $ 7.90 3, Mick Jagger, Başlık 610, Fiyat $ 7.90 7, John Lennon, Başlık 271, Fiyat $ 7.90Sıralama Tersine Çevirme
-r seçeneği, sıralamayı tersine çevirir. Örneğin, yukarıdaki sonuçları kullanarak:
$ sort -k4 -r test.txtverim:
7, John Lennon, Başlık 271, Fiyat $ 7.90 3, Mick Jagger, Başlık 610, Fiyat $ 7.90 2, Taylor Swift, Başlık 723, Fiyat $ 7.90 5, Johnny Nakit, Başlık 482, Fiyat $ 6.50 6, Elvis Presley, Başlık 335, Fiyat $ 6.30 4, Lady Gaga, Başlık 118, Fiyat $ 6.30 1, Justin Timberlake, Başlık 545, Fiyat $ 6.30 8, Michael Jackson, Başlık 373, Fiyat $ 5.50Sıralı Bir Dosyayı Kaydetme
Bir dosyayı sıralamak onu kaydetmez. Sıralanan listeyi bir dosyaya kaydetmek için yönlendirme işlecini kullanırsınız:
sıralama -k4 -r test.txt> test_new.txt"test_new.txt" yeni dosyadır.
Akış Çıkışını Sıralama
Ayrıca, sıralama komutunu, boru işleci gibi bir akışın çıktısına da uygulayabilirsiniz:
$ ls -al | sırala -r -n -k5Bu, ls komutu tarafından oluşturulan dosya listesinin çıktısını en büyük dosyalardan başlayarak dosya boyutuna göre sıralar. -n operatörü, alfabetik değil, sayısal sıralamayı belirtir.