关于使用命令的两个问题uniq
,请帮忙。
第一个问题
假设我有两个文件;
$ 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
,我可以将两个文件合并为一个。结果是:
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.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