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が取得されます。何が違うの?この質問から何を除外しますか?