出力は次のようなプログラムがあります
# Status VAL1 VAL2 Description
1 some text 2.5 4.4 Some long other text
5 some text 2 14.5 2.0 Some long other text 2
12 some text 3 222.6 24.4 Some long other text 3
19 some text 4 3.4 1.5 Some long other text 4
21 some text 5 55.4 10.6 Some long other text 5
32 some text 6 2.9 9.4 Some long other text 6
VAL2列に沿ってソートしたいです。試してみましたが、sort -k 4
「状態」列に空白があってsort
混乱しました。
この問題を解決する方法はありますか?フィールド番号の代わりに文字番号を渡すことはできますか?
ベストアンサー1
列オフセットに基づいてソート:
sort -k1.27g
上記のフラグ(通常の数値ソート用)はg
標準ではないため、ソート実装はこれをサポートしない可能性があります。
この特定のデータサンプルを使用すると、次のようになります。
LC_ALL=C sort -k1.27
つまり、英数字ソートを実行し、Cロケールを使用してソート時に先行スペースを無視しないようにします。たとえば、並べ替えが続くと、並べ[ ]4.4
替えが前に来ます。24.4
4
2