2つの垂直列に基づいてソート

2つの垂直列に基づいてソート

n番目のフィールドではなく、n番目の列(数字)でソートしたいファイルがあります。ファイルの概略図は次のとおりです。

1 Here are four words       9 8 5 
2 Here's two                7 2 6
3 One 2 3                  10 3 7
4 Guess how many are here   9 4 8
123456789012345678901234567890123

(明確に説明すると、最後の行は単なるカウンターです)。 Stackexchangeのフレンドリーな人々は私に似たものが必要だと言いましたsort -k1.27ほぼやりたいことをしてください。

ただし、最初の動点(たとえば、上の1行と4行、両方とも「9」)がある場合、ソートはフィールドの先頭に戻り、この場合、行1は行4の前にソートされます(「1」が来るため) )。 「4」以前)私が必要なのはスタートフィールド1.27(つまり、「9 8」より前に「9 4」ランク付けされたフィールド)。

sort -g -k1.27,1.34[と]を試しましたが、sort -g -k1.27,34追加のパラメータには顕著な効果はありません...どのようなアイデアがありますか?

ベストアンサー1

複数を定義できます。ソートキー:

sort -k1.27n -k1.30n

関係の場合、代替方法は、行全体の語彙比較を実行することです。

sort -k 1.27,1.34最初のフィールドの27番目の文字と34番目の文字の間の行部分で構成されるキーが定義されます。ただし、これはキーが数字として扱われることを-g示すため、数字ではなく最初の後のすべての項目は無視されます。sort

-k1.27ご利用の際は参考にしてくださいそしてその行の終わりで終わります。の場合、n初期数値部分のみが考慮されます。

おすすめ記事