データファイルを降順に並べ替えようとしています。データファイルは、タブで区切られた3つの列で提供されます。 3番目の列は降順でソートしたいと思います(3番目の列は指数値の科学的表記法として提供されます)。
cat eII_surf.txt | sort -gr -k3
とにかく、これは古いコンピュータでは動作しましたが、新しいコンピュータではまったく動作しないようです。
簡単な例は次のとおりです。
cat test.txt
:
6.7 2.3e-12
5.0 3.4e-18
4.5 5.6e-16
4.2 2.1e-15
4.0 2.9e-17
2.4 2.5e-15
1.0 1.0e-17
0.5 1.0e-18
そしてcat test.txt | sort -gr -k2
:
4.5 5.6e-16
5.0 3.4e-18
6.7 2.3e-12
4.2 2.1e-15
4.0 2.9e-17
2.4 2.5e-15
1.0 1.0e-17
0.5 1.0e-18
これは次の出力ですlocale
。
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC=de_DE.utf8
LC_TIME=de_DE.utf8
LC_COLLATE="en_US.utf8"
LC_MONETARY=de_DE.utf8
LC_MESSAGES="en_US.utf8"
LC_PAPER=de_DE.utf8
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT=de_DE.utf8
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
ベストアンサー1
2.3e-12
2
10進数の基数文字が存在するロケールに数字を書く必要があることが理解されます,
(あなたを含むほとんどの英語以外の世界のように)。de_DE.utf8
2,3e-12
次のことができます。
LC_ALL=C sort -grk2 < your-file
数字が英語スタイルで解釈されるようにします。
Cロケール(すべてのシステムで見つけることができる唯一のロケール)では、小数点の下数は.
(便宜上)です。
sort
とは何の関係もなく、bash
別々のコマンドであることに注意してください。この-g
オプションはGNU実装の非標準拡張ですsort
。