省朝夕

 

Linux-sort

sort命令


用途 

用于文本排序的命令,以文本行为单位按照ascii码顺序进行排序。支持去重、逆序等规则。

用法

sort [option] filename
-b,--ignore-leading-blanks    忽略每一行前面的所以空白部分,仅从第一个可见字符开始比较排序
-u,--unique    去重
-r, --reverse    逆序排序
-o,--output    重定向输入到指定的文件(与>重定向不一样,使用>重定向不能重定向到原有文件,-o是用于排序后,再次重定向到原文件)
-n,--numeric-sort    根据数字值大小排序(比如10,2正常排序,如果不添加-n,就会依据ascii码排成:10,2)
-k, --key=2[,5]    以第二到第五部分作为key进行排序
-t,--field-separator=SEP    以SEP为分隔符分割每一行字符(常与-k合用)

示例

1、若有文本hjc.txt内容如下:
 3
1
 2
10
则sort hjc.txt,输出为:
1
10
2
3
添加选项:-n 即完整名:sort -n hjc.txt 输出为:
1
2
3
10
2、若有文件hello.txt内容如下:
International Labour Day:3
marriage leave:15
National Day:7
Spring Festival:5
Weekend Day:2
每一行以分号分割,分别表示假期和放假天数。现在想进行有意义的排序:按照放假天数由多到少进行排序,并把排序结果重新写会到hello.txt,则命令是:
sort -n -r -k 2 -t: hello.txt -o hello.txt
排序后结果为:
marriage leave:15
National Day:7
Spring Festival:5
International Labour Day:3
Weekend Day:2

注意:sort a > a ,后果很严重,数据没了。并不是期望的把排序结果再写会到a,正确应该是:sort a -o a。(我想不会有人会故意用sort a>a来清空数据吧,那么为什么Linux还允许这种极易出错的命令存在而毫无警示呢? )

 

posted on 2013-05-01 11:52 hejianchao 阅读(257) 评论(0)  编辑  收藏 所属分类: 一天一命令


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

留言簿

文章分类

文章档案

搜索

最新评论