次のファイルを並べ替えようとしています。
a 2
b 1
a 10
私は得る必要があります:
a 2
a 10
b 1
-kPOS [opts]オプションについて知っているので、それを使用してみます。
sort -k1 -k2n file
しかし、このコマンドは私にのみ与えます:
a 10
a 2
b 1
したがって、最初の列でソートされますが、2番目の列ではソートされません。実行中sort -k2n file
は2番目の列でソートします。
b 1
a 2
a 10
2列で並べ替えるにはどうすればよいですか?
ソート(GNU coreutils)5.93
主キーを終了する必要があります。そうしないと、sortは指定されたフィールドから始まるすべてのフィールドを使用します。
sort -k1,1 -k2n
ほぼ正しいです。これを試して:
sort -k1,1 -k2,2n
あなたが持っている場合 GNU sort
並べ替えると、バージョンの並べ替えを実行できます。
$ sort -V file
a 2
a 10
b 1
オプション:
-V, --version-sort natural sort of (version) numbers within text
バージョンの並べ替えのいいところは、列に関係なく機能することです。
$ cat file
a2
b1
a10
$ sort -V file
a2
a10
b1