コマンドの使用に関する 2 つの質問uniq
、助けてください。
最初の質問
2 つのファイルがあるとします。
$ cat 1.dat
0.1 1.23
0.2 1.45
0.3 1.67
$ cat 2.dat
0.3 1.67
0.4 1.78
0.5 1.89
を使用するcat 1.dat 2.dat | sort -n | uniq > 3.dat
と、2 つのファイルを 1 つにマージできます。結果は次のとおりです。
0.1 1.23
0.2 1.45
0.3 1.67
0.4 1.78
0.5 1.89
1.dat
しかし、ファイルに科学表記法がある場合、
$ cat 1.dat
1e-1 1.23
0.2 1.45
0.3 1.67
結果は次のようになります。
0.2 1.45
0.3 1.67
0.4 1.78
0.5 1.89
1e-1 1.23
これは私が望むものではありません。文字列ではなく数値であることをどのようにuniq
理解させることができますか。1e-1
2 番目の質問
上と同じですが、今度は 2 番目のファイル2.dat
の最初の行を少しだけ変更します (から0.3 1.67
へ0.3 1.57
)
$ cat 2.dat
0.3 1.57
0.4 1.78
0.5 1.89
結果は次のようになります。
0.1 1.23
0.2 1.45
0.3 1.67
0.3 1.57
0.4 1.78
0.5 1.89
私の質問はこれuniq
です。最初のファイルの値に基づいて使用し、最初の列からのみ繰り返しを見つけて、結果が次のようになるようにする方法は次のとおりです。
0.1 1.23
0.2 1.45
0.3 1.67
0.4 1.78
0.5 1.89
ありがとう
より複雑なテスト ケース
$ cat 1.dat
1e-6 -1.23
0.2 -1.45
110.7 1.55
0.3 1.67e-3