サブフィールドを使用したCSVファイルのソート

サブフィールドを使用したCSVファイルのソート

スペースで区切られた1つのCSVファイルがあります。

Jan_high 32 123
Febr_low 19 139
March_high 12 63
Jan_low 36 18
Febr_high 87 99
March_low 83 77

_high最初の列に基づいて_low文字列をソートする方法は?sort -k1.5high または low 文字列が固定文字位置から始まらないため使用できません。誰でもどんなアイデアがありますか?

答え1

-t '_' -k2withを使用すると、入力はスペース以外の文字で区切られたものとしてsort扱われ、2番目のフィールド(またはで始まるフィールド)がソートされます。sort_highlow

$ sort -t '_' -k2 file
March_high 12 63
Jan_high 32 123
Febr_high 87 99
Febr_low 19 139
Jan_low 36 18
March_low 83 77

入力の最初の行を例にしましょう。

Jan_high 32 123
^^^ ^^^^^^^^^^^
f1  field2

関連情報