我需要按照第三列对一个扁平文件进行排序,同时保持第一列不变(第一列已经有序)(在Linux中)。 (第二列可能会改变)
示例输入文件:
b:di:wave
b:di12:red
b:di12:wave
b:di06:pir
应该看起来像:
b:di06:pir
b:di12:red
b:di12:wave
bast:di:wave
我尝试了几种排序选项,但只能按第二列排序,而无法按第三列排序。
有人可以帮忙吗?
我需要按照第三列对一个扁平文件进行排序,同时保持第一列不变(第一列已经有序)(在Linux中)。 (第二列可能会改变)
示例输入文件:
b:di:wave
b:di12:red
b:di12:wave
b:di06:pir
应该看起来像:
b:di06:pir
b:di12:red
b:di12:wave
bast:di:wave
我尝试了几种排序选项,但只能按第二列排序,而无法按第三列排序。
有人可以帮忙吗?
试试这个:
sort -t: -k1,1 -k3 data.txt
提供:
bast:disp-san-d5-06:piranha
bast:display-san-12:redbird
bast:display-san-07:waverider
bast:display-san-12:waverider
:
排序。data.txt
包含您发布的帖子中的4行。-k1,1
意味着按第一个字段排序(从第1个字段开始到第1个字段结束,否则将继续使用其余行来确定排序)
-k3
意味着将第三个字段作为次要键进行排序。由于后面没有其他字段,因此不必指定-k3,3
,但这也无妨。
-t:
意味着在行中用:
字符分隔字段,否则默认使用空白符。