私はファイルを持っています:
_$ cat file
1 c
8 a
1 b
5 f
_
最初のsort
コマンドはすべての行の最初のフィールドを比較し、それらを並べ替えてから、これらの行の最初のフィールドが同じで、次のように2番目のフィールドの並べ替えを再開すると思います。
_$sort file
1 b
1 c
5 f
8 a
_
オプション_k 1
_と_k 1,1
_の違いについて読みました:_k 1
_を使用すると、ソートキーは行末まで続く可能性がありますが、_k 1,1
_のみでソートする必要があります他のフィールドを考慮せずに最初のフィールドが:
_$sort -k 1 file
1 b
1 c
5 f
8 a
$sort -k 1,1 file
1 b
1 c
5 f
8 a
_
sort
= _sort k 1
_ = _sort k 1,1
_の出力が等しいのはなぜですか?
_sort k 1,1 file
_の出力は
_1 c
1 b
5 f
8 a
_
それが正しくない場合、私の間違いとは何か、どうすればそのような出力を得ることができますか?
info sort
から
Many options affect how ‘sort’ compares lines; if the results are
unexpected, try the ‘--debug’ option to see what happened. A pair of
lines is compared as follows: ‘sort’ compares each pair of fields, in
the order specified on the command line, according to the associated
ordering options, until a difference is found or no fields are left. If
no key fields are specified, ‘sort’ uses a default key of the entire
line. Finally, as a last resort when all keys compare equal, ‘sort’
compares entire lines as if no ordering options other than ‘--reverse’
(‘-r’) were specified. The ‘--stable’ (‘-s’) option disables this
“last-resort comparison” so that lines in which all fields compare equal
are left in their original relative order. The ‘--unique’ (‘-u’) option
also disables the last-resort comparison.
希望する結果を得るには(最初のフィールドが数値であることを念頭に置いてください)
$ sort -s -k1,1n file
1 c
1 b
5 f
8 a
2番目の列を逆にしたい場合(特定の質問に対する適切な答えではありませんが、おそらくあなたが興味を持っていることです)、 nix StackExchange oneから少し詳しく説明します:
sort -k1,1n -k2,2r file