何をしているの?

何をしているの?

これはこの質問に対するフォローアップです。数値以外の値に対してsort -nは何をしますか?

これは私の入力です。

1-----***
R----****
1---*****

それから私は以下を実行しました。

sort -k 1.2,1.9n input.txt > output.txt

これは私の結果です。

1-----***
1---*****
R----****

私の予想結果:

1---*****
R----****
1-----***

*(42)のASCII値が-(45)の値より小さいため、この出力は予想されます。ただし、ソートでRを考慮しているようですが、1.2、1.9は排除しそうです。私は何が間違っていましたか?

ベストアンサー1

使用中のソートキーが無効です(入力テキストと一致しないため無効です)。ソート情報マニュアルでは、この--debugオプションを使用してキーマッチングの動作を調査することをお勧めします。 command キーを使用して1.2,1.9nsort すると、次の出力が生成されます。

% sort -k 1.2,1.9n --debug input.txt 
sort: using ‘en_US.UTF-8’ sorting rules
1-----***
 ^ no match for key
_________
1---*****
 ^ no match for key
_________
R----****
 ^ no match for key
_________

フィールド全体のデフォルトのソートを使用することに置き換えられるようです。nキーを省略して単に使用すると、1.2,1.9次の結果が表示されます。

% sort -k 1.2,1.9 --debug input.txt 
sort: using ‘en_US.UTF-8’ sorting rules
1-----***
 ________
_________
R----****
 ________
_________
1---*****
 ________
_________

ソート操作には、最初のフィールドの2〜9番目の文字を正しく使用してください。

おすすめ記事