ソートコマンドラインオプションを処理する方法

ソートコマンドラインオプションを処理する方法

このようなファイルがあります。

1.2.3.4
1.1.1.1
4.5.6.7
1.1.3.5

私が与えるとき

sort -t. -k3 inp3

1.1.1.1
1.2.3.4
1.1.3.5
4.5.6.7

私が与えるとき

sort -t. -k3,3 inp3
1.1.1.1
1.1.3.5
1.2.3.4
4.5.6.7

2番目と3番目の列は異なります。このkオプションについて多くの質問と回答を見ることができます。 -k3を与えると、3番目の列

1.1.3.5
1.2.3.4

同じ4番目の列を考えてみましょう。

与えるときの違いは何ですか?

sort -n -t. -k3 inp3

答え1

使用法は-k次のとおりです。

    -k field_start[type][,field_end[type]]

最後のフィールドを省略すると、開始フィールドのすべてのフィールドが使用されます。それにもかかわらず、セカンダリフィールドは順番に切断するために使用されます。

したがって、これを行うと、-k3フィールド3と4はソートに使用され、フィールド4は同順位の区切りに使用されます。の場合、-k3,3フィールド3のみが使用され、他のフィールドは無視されます。したがって、あなたの結論は正しいです。

-nそれ自体を指定することは、すべてのフィールドが数値として扱われ、それに応じてソートされることを意味します。アルファベット順(より正確には辞書式)では2最後に来て102、数字順ではその逆です。よりマンページフィールドが数値として扱われることが何を意味するのかを理解します。

関連情報