使用するsort (coreutils) 5.2.1
次のファイルがあり、フィールド 4 の整数以外の部分で並べ替えたいと考えています。これは、負または正の数である可能性があり、値 INF を持つこともあります。
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=INF field5 field6
これを次のように並べ替えたい
field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
フィールドの数値部分が文字位置 4 にあることを考えると (インデックスが 0 から始まると仮定すると、これはよくわかりません)、sort
次のオプションを試してみました。
sort -g -k4.4 inputfile
sort -g -k4.5 inputfile
sort -n -k4.4 inputfile
sort -n -k4.5 inputfile
sort -g inputfile
これらはすべて次の結果をもたらします。これは近いですが、完全には正しくありません。マグニチュードは正しくソートされていますが、一番上に最も負の値が必要です。
field1 field2 field3 tag=0.123 field5 field6
field1 field2 field3 tag=-1.91 field5 field6
field1 field2 field3 tag=-1.92 field5 field6
field1 field2 field3 tag=4.22 field5 field6
field1 field2 field3 tag=5.77 field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
field1 field2 field3 tag=INF field5 field6
どうすればsort
振る舞うことができますか?
FWIW、詳細は次のとおりです。
LANG = en_US.UTF-8
Red Hat Enterprise Linux WS release 4 (Nahant Update 6)