次の形式のテキストファイルがあります。
b SN:2
d SN:5
f SN:10
g SN:11
h SN:15
i SA:3
j SN:1
k SN:4
2番目の列、実際には2番目の列の数値に基づいてソートしたいと思います。私は努力しました -
$ sort -n -k2,2 file
$ sort -k2.4,2.5n file
しかし、何も動作しないようです。
ベストアンサー1
オプションを使用しないため-t
(-b
またはGNUソート)、したがって計算は先行スペースの始めから始めるべきです。 POSIXの定義sort -k 拡張の説明ように:
A field comprises a maximal sequence of non-separating characters and, in
the absence of option -t, any preceding field separator
したがって、以下を使用する必要があります。
$ sort -nk2.7 file
j SN:1
b SN:2
i SA:3
k SN:4
d SN:5
f SN:10
g SN:11
h SN:15
ただし、これをフィールド区切り文字として使用してから、2:
番目のフィールドに基づいて数値を並べ替えることができます。
$ sort -t':' -nk2 file
j SN:1
b SN:2
i SA:3
k SN:4
d SN:5
f SN:10
g SN:11
h SN:15