iki sütunu sıralama


0

Bir veri sütununu sonra da diğerini sıralamak için sort komutunu (5.97) kullanmaya çalışıyorum.

Şu an yapıyorum:

 > ls test/2/*.jpg | sort -t- -k1 -g -s
test/2/0-0.jpg
test/2/0-10.jpg
test/2/0-1.jpg
test/2/0-2.jpg
test/2/0-3.jpg
test/2/0-4.jpg
test/2/0-5.jpg
test/2/0-6.jpg
test/2/0-7.jpg
test/2/0-8.jpg
test/2/0-9.jpg
test/2/1-0.jpg
test/2/1-10.jpg
test/2/1-1.jpg
test/2/1-2.jpg
test/2/1-3.jpg
test/2/1-4.jpg
test/2/1-5.jpg
test/2/1-6.jpg
test/2/1-7.jpg
test/2/1-8.jpg
test/2/1-9.jpg
test/2/2-0.jpg
test/2/2-10.jpg
test/2/2-1.jpg
test/2/2-2.jpg
test/2/2-3.jpg
test/2/2-4.jpg
test/2/2-5.jpg
test/2/2-6.jpg
test/2/2-7.jpg
test/2/2-8.jpg
test/2/2-9.jpg

Fakat gördüğünüz gibi, iki basamaklı sayılar yanlış noktada. Bunu sıralama ile yapmanın bir yolu var mı?

Yanıtlar:


2

"-K1" kodundan sonra bir "-k2" ekleyin. yani

ls test/2/*.jpg | sort -t- -k1 -k2 -g -s   (or sort -t- -n -k1 -k2)

Bir çelişki varsa, bu sorunu çözmek için 2. alanı (-k2) kullanır ve (neyi kullanırım) -n onları sayı olarak değerlendirir. Sırayı değiştirip -k2 -k1 kodunu koyarsanız, dosya adındaki ikinci numaraya göre sıralar ve ilkini yalnızca bir çakışma olduğunda kullanır.


ikisi de ls test/2/*.jpg | sort -t- -k1 -k2 -g -sve ls test/2/*.jpg | sort -t- -k2 -k1 -g -sbana aynı sonucu verin: test / 2 / 0-0.jpg testi / 2 / 1-0.jpg testi / 2 / 2-0.jpg testi / 2 / 3-0.jpg testi / 2 / 4- 0.jpg testi / 2 / 5-0.jpg testi / 2 / 0-1.jpg testi / 2 / 1-1.jpg testi / 2 / 2-1.jpg testi / 2 / 3-1.jpg testi / 2 / 4-1.jpg test / 2 / 5-1.jpg vs. Başka bir şekilde olmasını istiyorum.
tkerwin

Deneyin sort -t- -n -k1 -k2senin alanları sayı olarak yorumlanır alıyorsanız sağlamak için. Şimdiye kadar gönderilen her iki cevap da bundan bahsetti.
DaveParillo

-naynı sonucu verir
tkerwin

1

hey, sıralanmamasının nedeni sıralama komutunun her satırda herhangi bir sayı tanımlayamamasıdır. Bunu bir dizge olarak kabul eder. Kaldırılan .jpg sonekiyle aynı komutu çalıştırmayı deneyin. İstediğiniz emri alacaksınız. Http://www.softpanorama.org/Tools/sort.shtml adresine bakın . Bu bağlantıda Sipariş seçenekleri bölümünü (-n seçeneği) okuyun. Umarız bu sorununuzu çözer.


+1, ancak sayısal olarak yorumlanacak bir sıralama dizisini almak için uzantıyı çıkarmanız gerekmez.
DaveParillo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.