请考虑一个名为example
包含以下数据的文本文件:
0 0.2667328325084663 0.02243994752564071
0 1.86630577374265 0.02243994752564048
0 0.2401209140718633 0.02243994752564071
我们example
通过以下命令先对第 3 列排序,然后对第 2 列排序:
sort -g -k 3,3 -k 2,2 <example > sortedExample
新文件sortedExample
现在包含以下内容:
0 1.86630577374265 0.02243994752564048
0 0.2401209140718633 0.02243994752564071
0 0.2667328325084663 0.02243994752564071
从第2列可以看出,其第一行的数据值高于第二行。这是预期的,因为第三列的第一行0.02243994752564048
小于第二列0.02243994752564071
。
问题是0.02243994752564048
和0.02243994752564071
直到第 15 位十进制数都相同,因此我们可以假设它们在广泛的应用中具有相同的值。
有没有办法告诉sort
只考虑第一个N
小数点,例如这里的15?
@steeldriver 给出了更有说服力的答案(假设我们使用
GNU version of sort
并希望考虑前 6 个小数点):导致:
基于这个答案:
首先,我们将第 2 列和第 3 列截断(最多小数点后 6 位),如下所示(目前每列应用两次,我将在一段时间内编辑我的答案):
然后,上述命令:
期望的结果如下: