ソートが予期したものとは異なります。このファイルがありますtext.txt
。名前を次のように指定してください。
a 1
A 1
a 11
(空間はいつも一つである\t
)
最初の列でアルファベット順に並べ替えたいです。しかし、私がするとき
sort -k 1 text.txt
私が得るのは、ソートされていないtext.txtファイルだけです。廃止予定の表記法で行うと+ -
意味します。
sort +0 -1 text.txt
期待どおりに動作します。つまり、次のような結果が出力されます。
a 1
a 11
A 1
この奇妙な動作は、行が大文字と小文字が異なる場合にのみ発生します。私は何が間違っていましたか?
答え1
終了列も指定する必要があります。
$ sort -k1,1 text.txt
a 1
a 11
A 1
引用するGNUソートマニュアルページ:
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 (default end of line)
答え2
バグが発生したはずですsort
!ファイルにスペースがないと正しくソートできません。
$ cat aaa
a1
A1
a11
$ sort aaa
a1
A1
a11
$ sort -k1,1 aaa
a1
A1
a11
これは次のことによってより明らかになります。
$ cat bbb
A B b 0
a B b 0
A b b 1
$ sort bbb
a B b 0
A B b 0
A b b 1
$ sort -k1,2 bbb
a B b 0
A b b 1
A B b 0