file1があります:
"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58"
File2 I必要なもの:
"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58"
基本的に数値で並べ替えられたfile1。
コメント
回答
-V –version-sortが好きです:文字列と数字が混在する多くの状況で非常にうまく動作します
sort -V
このオプションを頻繁に使用します…
ある方向に、ls -vバージョンソートls。
回答
sort -nに、=の後の部分を並べ替えるように指示する必要があります:
sort -t = -k 2n
コメント
- 最近これを探していました^^。しかし、もう1つQ.
-k2nとは何ですか?それは数値ソートに関連していますか?ありがとうございます。 - @KasiyA
-kはソートキーを定義します。詳細については、manページを参照してください。-k2nは、2番目のフィールドで始まり、行の終わりで終わるソートキーを定義し、数値のソートキーにします。
回答
sort -hを実行するだけで、機能することがわかりました。彼らはそれを--human-numberic-sortと呼んでいます。
sort -h file1 > file2
回答
use sort:
sort -n file1 > file2
-n、-numeric-sort
文字列の数値に従って比較
sort -g file1 > file 2
-g、-general-numeric-sort
コメント
- いいえ、すべて行は番号で始まらないため、
sort -nと同じランクになります。'それらをソートする理由は、同じランクの行に対して行われる最後のリゾートのフルラインソート(数値ではなく字句)です。これにより、"$lvl=17"が"$lvl=2"の前に並べ替えられます。 - @St é phaneChazelasは指摘してくれてありがとう。
- 言い換えると、入力は数値ではないため、
-nと-gは冗長です。 。したがって、この回答は誤解を招くため、反対票を投じます(-gと長いオプションはGNU固有であることに注意してください)。 - ただし、-gは一般的な数値です- sort
- 'はまだ数値をソートするためのものですが、
-nとの違いは'は10進整数に限定されません。それでも、最後の並べ替えの一部として、"$lvl=2"の前に"$lvl=17"が並べ替えられます。
回答
sort -nが使用したいものです。数字を並べ替えるときに並べ替えます。 sort -k 2 -n file1
コメント
- しかし、OPは昇順で並べ替えたいと考えています。これがデフォルトです。なぜ逆の順序を提案するのですか?
- フィールドがタブまたはスペースで区切られ、OP 'の場合。
sortをオプションなしで実行すると、File2が取得されます。何が違うの?この質問から何を除外しますか?