我有一个文件,让我们说“bigfile”,包含以下表格的表格数据,
a1 b2 a3 1
b1 a2 c3 0
......等等。
我想在我的Linux机器上使用内置的“排序”程序,所以按第四个字段(数字)排序此文件,然后同时按第一个字段排序。我经历了几次手册页,我能想到的就是,
sort -n -k4,4 -k1,1 bigfile
有没有办法让“排序”做我想做的事情,或者我必须编写自己的自定义程序?
谢谢。
答案 0 :(得分:30)
从联系手册:
POS是F [.C] [OPTS],其中F是 字段编号和C字符 在该领域的位置;两者都是起源 1.如果-t和-b都没有生效, 字段中的字符从中计算 前面的开头 空白。 OPTS是一个或多个 单字母订购选项, 它覆盖全局排序选项 为那把钥匙。如果没有给出密钥,请使用 整条线作为关键。
sort -k4,4n -k1,1 bigfile
应该这样做。
另一个选项是sort -k1,1 bigfile | sort --stable -n -k4,4
稳定排序意味着第四个字段上的关系由初始位置解析,初始位置由排序的第一个通道设置为第一个字段。