簡體   English   中英

在bash中對多個小數進行排序

[英]Sorting numbers with multiple decimals in bash

bash使用帶-n選項的sort不會給我預期的結果。

$ cat numbers | sort -n
1.0
1.1
1.11.4
1.15
1.3
1.3.3
1.4-p1
1.6.1
2.2.10
2.2.2
2.4
2.4.6

我嘗試使用-k1-k1.1n等( -k1.3n僅對從1開始的數字獲得正確的順序)。 看來這里有一些我非常基本的東西......

這個版本號有-V的特殊標志

$ sort -V numbers

1.0
1.1
1.3
1.3.3
1.4-p1
1.6.1
1.11.4
1.15
2.2.2
2.2.10
2.4
2.4.6

PS。 此選項在GNU Coreutils中可用,在其他實現中可能會丟失。

你需要-t。 用於指定'。'的標志 作為您的分隔符,多個鍵位置說明符處理逐漸更長/更深的數字。 我仍然不太確切地知道它是如何工作的,但是它有效......

 sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n numbers

要么

 cat numbers | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n
sort -g numbers

它會的。 根據排序手冊頁, -g用於數字排序:

-g, - general-numeric-sort

根據一般數值進行比較

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM