页次: 1
linux 中的 sort 命令是用来排序的。
排序的规则是 , 对于文本文件,通常是一行一行的。
一行中通常有时有多个域组成, 域直接默认使用空格隔开的。
比如文件 a.txt
2 this is two 1 this is one 03 this is three
这个文件, 是三行组成, 没一个行有三个域, 域直接用空隔开。
排序就是对 没一个竖向的域中的一个或者多个进行排序。
示例:
# sort a.txt 03 this is three 1 this is one 2 this is two
输出的结果03排在了第一。 因为0比1小。
如何让03排再最后呢,使用 -n 即可
sort -n a.txt 1 this is one 2 this is two 03 this is three
这里可以可以看到选项有很强大的功能。常用的选项总结
-t : 修改域的分隔符, 默认的情况是 空, 比如想用冒号 -t: (注意这里没有空格)
-k : 指定按照那个域进行排序。
-n : 按照数的大小的规律,默认是按照字符的大小排列。
sort -k 3 -k 1 -n a.txt 1 this is one 2 this is two 03 this is three
这个例子是排了两次, 可以看到有两个k 第一对第三个域拍, 第二个对第第一域拍,并且按照数的大小排序。
-r : 反向输出结果
-u :去除重复的行
-o : 输出的结果写入文件
更多的例子
ipbbs.net
离线
页次: 1