[Linux] sort命令
原文出自:http://blog.csdn.net/gogdizzy/article/details/6576474
sort命令
-t 指定分隔符号
如果不指定,默认以空格为分隔,且忽略首尾空格;如指定,则只可识别一个字符,如果这个字符是空格,那么不忽略首尾空格。例如,有一行内容是" X ",不指定参数,认为只有一个字段,指定空格为分隔符,那么有三个字段,第一个和第三个字段为空。
如何输入制表符<tab>?有很多数据是用<tab>字符来做字段分隔符的,然而如果在交互式shell中输入<tab>是不会给你显示这个字符的,因为<tab>的默认功能是补全和提示。解决办法是,按ctrl+v,然后按<tab>或ctrl+i,就会在命令行中出现<tab>字符了
-k 指定排序字段(可以指定多个-k参数 按照出现顺序设置比较优先级)
每一行也许会被分隔符分隔成多个字段,哪个字段优先级更高?可以通过-k参数来指示。和Excel中的多字段排序是一个意思。
参数是(数字+修饰符)的形式,注意数字是基于1的。
-k2 #从第二个字段比较到记录末尾
-k2.3,4.5 #从第二个字段的第三个字符开始,一直比到第四个字段的第五个字符
-k2,2nr # 只比较第二个字段,并且将其视为数字,并且倒置排序(如果默认从小到大,那么这个就是从大到小)