sayısal sıralama ile unix'te sort komutu


11

Ben file1 var:

"$lvl=57"
"$lvl=20"
"$lvl=48"
"$lvl=17"
"$lvl=58"

İstediğim Dosya2:

"$lvl=17"
"$lvl=20"
"$lvl=48"
"$lvl=57"
"$lvl=58"

Temelde sayısal olarak bir tür dosya1.


sortFile1'inizde düz bir Unix çalıştırdığımda , seçeneksiz, File2'nizi alıyorum. Farklı ne yapıyorsun? Bu sorudan ne çıkarıyorsun?
Scott

Yanıtlar:


18

-V --version-sort'i seviyorum: dizeleri ve sayıları karıştıran birçok durum için çok iyi davranıyor

sort -V

Bu seçeneği çok sık kullanıyorum ...

Bazı yönlerde, ls -vsürüm sıralaması için ls.


10

Parçadan sort -nsonra sıralamayı söylemeniz gerekir =:

sort -t = -k 2n

Geçenlerde bu ^^ bakıyordu. Ama bir tane daha S. Ne yapar -k2n? Bu sayısal sıralama ile mi ilgili? teşekkür ederim.
αғsнιη

2
@KasiyA -kbir sıralama anahtarı tanımlar. Ayrıntılar için kılavuz sayfasına bakınız. -k2nikinci alandan başlayıp satırın sonunda biten bir sıralama anahtarı tanımlar ve bunu sayısal bir sıralama anahtarı yapar.
Stéphane Chazelas

0

sıralama kullanın:

sort -n file1 > file2

-n, --numeric-sort
dize sayısal değerine göre karşılaştırma

 sort -g file1 > file 2

-g, --general-numeric-sort


3
Hayır, tüm bu satırlar sort -nbir sayı ile başlamadığı için aynı sıralamaya sahiptir . Bunları sıralamanın nedeni, aynı sıralamaya sahip satırlar için yapılan son çare tam satır sıralamadır (sözcüksel olarak, sayısal olarak değil). Bu daha "$lvl=17"önce sıralardı "$lvl=2".
Stéphane Chazelas

@ StéphaneChazelas işaret ettiğiniz için teşekkürler.
Hackaholic

Paraphrase için -nve -gburada sayısal değildir çünkü burada gereksizdir. Bu nedenle bu cevap yanıltıcıdır, bu nedenle aşağı oy (ayrıca -gve uzun seçeneklerin GNU'ya özgü olduğunu unutmayın ).
Stéphane Chazelas

ama -g iyidir genel-sayısal-sıralama
Hackaholic

Bu hala sayısal değerleri sıralamak için, aradaki fark -nondalık sayılarla sınırlı olmamasıdır. Bu hala daha "$lvl=17"önce "$lvl=2"son çare sıralamasının bir parçası olarak sıralanabilir.
Stéphane Chazelas

0

Buldum sort -h, sadece koş , işe yarayacak. Buna diyorlar --human-numberic-sort.

sort -h file1 > file2

-1

sort -nkullanmak istediğiniz şeydir. Sayıları sıralarken sıralar.sort -k 2 -n file1


2
Ancak OP, varsayılan olan artan düzende sıralamak istiyor. Neden ters sipariş öneriyorsunuz?
G-Man

alanlar sekmeler veya boşluklarla ayrıldığında ve OP'nin durumunda çalışmazsa yukarıdakiler doğrudur .
αғsнιη
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.