我有如下的日期。
random check/1 -0.02
random check/1 -0.05
random tell/1 -0.01
random tell/2 -0.02
random checking -0.00
我尝试对第二列进行排序,然后对第三列进行排序。我用了sort -n -k2,2 -k3,3 file
。但它没有给出我正在寻找的输出。
输出应该是:
random check/1 -0.05
random check/1 -0.02
random checking -0.00
random tell/1 -0.01
random tell/2 -0.02
然后我想将它唯一化。所以最终的输出应该是链接
random check/1 -0.05
random checking -0.00
random tell/1 -0.01
random tell/2 -0.02
基本上,它对第二列进行排序,然后对第三列进行排序,然后对第二列进行排序,所以我只看到最差的数字。
答案1
sort -nk3,3 file | sort -uk2,2
答案2
sort -k2,2 -k3,3n | awk '$2!=s;{s=$2}'
对第二个字段的数据进行排序,然后对第三个字段进行数字排序。使用 awk 打印第二个字段的第一次出现(如果第二个字段与保存的值不同,则打印该行,然后保存第二个字段)。