linux sort 时间 排序,[转]Linux sort排序命令的用法大全

sort 的用法大全

2007-11-29 23:24 来源:

qiaoby.cublog.cn 作者:qiaoby 网友评论 0 条 浏览次数 465

1.sort(分类)用法

sort命令选项很长,下面仅介绍各种选项。

sort命令的一般格式为:

sort -cmu -o output_file [other options] +pos1 +pos2

input_files

下面简要介绍一下sort的参数:

-c 测试文件是否已经分类。

-m 合并两个分类文件。

-u 删除所有复制行。

-o 存储s o r t结果的输出文件名。

其他选项有:

-b 使用域进行分类时,忽略第一个空格。

-n 指定分类是域上的数字分类。

-t 域分隔符;用非空格或t a b键分隔域。

-r 对分类次序或比较求逆。

+n n为域号。使用此域号开始分类。

n n为域号。在分类比较时忽略此域,一般与+n一起使用。

post1 传递到m,n。m为域号,n为开始分类字符数;例如4,6意即以第5域分类,从第7个字符开始。

保存输出

- o选项保存分类结果,然而也可以使用重定向方法保存。下面例子保存结果到results.out:

$sort video >results.out

2.例子说明

=========================================

下面是文件video的清单,包含了上个季度家电商场的租金情况。各域为:

(1)名称,(2)供货区代码,(3)本季度租金,(4)本年租金。

域分隔符为冒号,为此对此例需使用‘-t’选项。文件如下:

[root@Linuxsvr lab]# cat video

Boys in Company C :HK :192 :2192

Alien :HK :119 :1982

The

Hill :KL :63 :2972

Aliens :HK :532 :4892

Star

Wars :HK :301 :4102

A Few Good Men :KL :445 :5851

Toy

Story :HK :239 :3972

=========================================

3.启动方式

缺省情况下,sort认为“一个空格”或“一系列空格”为“分隔符”。要加入其他方式分隔,使用-t(-t+分隔符)选项,如:

[root@Linuxsvr lab]# sort -t: video

A Few Good

Men :KL :445 :5851

Alien :HK :119 :1982

Aliens :HK :532 :4892

Boys in Company C :HK :192 :2192

Star

Wars :HK :301 :4102

The

Hill :KL :63 :2972

Toy

Story :HK :239 :3972

以“:”为分隔符,按照第一列排序

4.

先查看是否为域分隔设置了- t选项,如果设置了- t选项,则使用分隔符将记录分隔成 域0、域1、域2、域3等等;

如果未设置- t选项,用空格代替。

缺省时sort以每行第一个字符将整个行排序,也可以指定域号,这样就会按照指定的域优先进行排序,

如果指定的域有重复,会参考下一个域。

sort对域的参照方式:

关于sort的一个重要事实是它参照第一个域作为域0,域1是第二个域,等等。sort也可以使用整行作为分类依据。

=========================================

第一个域 第二个域 第三个域 第四个域

域0 域1 域2 域3

Boys in Company C :HK :192 :2192

Alien :HK :119 :1982

The

Hill :KL :63 :2972

Aliens :HK :532 :4892

Star

Wars :HK :301 :4102

A Few Good

Men :KL :445 :5851

Toy

Story :HK :239 :3972

=========================================

文件是否已分类

怎样分辨文件是否已分类?如果只有30行,看看就知道了,但如果是400行呢,使用sort

-c查看sort文件是否按某种顺序分类。

[root@Linuxsvr lab]# sort -c video

sort: video:2:

disorder:

Alien :HK :119 :1982

结果显示未分类,现在将video分类,并存为2.video

[root@Linuxsvr lab]# sort -t: video

>2.video

[root@Linuxsvr lab]# sort -c 2.video

[root@Linuxsvr lab]#

没有任何错误提示,返回提示符表明已分类。然而如果测试成功,返回一个信息行会更好。

5.

基本sort

最基本的sort方式为sort

filename,按第一域进行分类(分类键0)。实际上读文件时sort操作将行中各域进行比较,

这里返回基于第一域sort的结果

[root@Linuxsvr lab]# sort -t: video

A Few Good

Men :KL :445 :5851

Alien :HK :119 :1982

Aliens :HK :532 :4892

Boys in Company C :HK :192 :2192

Star

Wars :HK :301 :4102

The

Hill :KL :63 :2972

Toy

Story :HK :239 :3972

sort分类求逆

如果要逆向sort结果,使用- r选项。在通读大的注册文件时,使用逆向sort很方便。下面是按域0分类的逆向结果。

[root@Linuxsvr lab]# sort -t: -r video

Toy

Story :HK :239 :3972

The

Hill :KL :63 :2972

Star

Wars :HK :301 :4102

Boys in Company C :HK :192 :2192

Aliens :HK :532 :4892

Alien :HK :119 :1982

A Few Good

Men :KL :445 :5851

按指定域分类

有时需要只按第2域(分类键1)分类。这里为重排 报文中“供应区代码”,使用t 1,意义为按分类键1分类。

下面的例子中,所有供应区代码按分类键1分类;

注意分类键2和3对应各域也被分类。因为第2域有重复,sort会再重复的情况下优先考虑下一个域的顺序。而且是按照第一个字符分类,并不是

按照整个数值大小分类63小于445,却被排到后面,因为第一个字符是6,大于4。

[root@Linuxsvr lab]# sort -t: +1 video

Alien :HK :119 :1982

Boys in Company C :HK :192 :2192

Toy

Story :HK :239 :3972

Star

Wars :HK :301 :4102

Aliens :HK :532 :4892

A Few Good

Men :KL :445 :5851

The

Hill :KL :63 :2972

数值域分类

依此类推,要按第三域(第二分类键)分类,使用t 2。但是因为这是数值域,即为数值分类,可以使用-

n选项。下面例子为按季度租金分类命

令及结果:

[root@Linuxsvr lab]# sort -t: +2n video

The

Hill :KL :63 :2972

Alien :HK :119 :1982

Boys in Company C :HK :192 :2192

Toy

Story :HK :239 :3972

Star

Wars :HK :301 :4102

A Few Good

Men :KL :445 :5851

Aliens :HK :532 :4892

使用-n选项是按照数值大小进行排列的,不使用-n选项是按照数字位排列,先看最左边第一位大小,如果第一位相同再看第二位大小

如果不指定n,如下

[root@Linuxsvr lab]# sort -t: +2 video

Alien :HK :119 :1982

Boys in Company C :HK :192 :2192

Toy

Story :HK :239 :3972

Star

Wars :HK :301 :4102

A Few Good

Men :KL :445 :5851

Aliens :HK :532 :4892

The

Hill :KL :63 :2972

数值域倒序:

[root@Linuxsvr lab]# sort -t: +2nr video

Aliens :HK :532 :4892

A Few Good

Men :KL :445 :5851

Star

Wars :HK :301 :4102

Toy

Story :HK :239 :3972

Boys in Company C :HK :192 :2192

Alien :HK :119 :1982

The

Hill :KL :63 :2972

唯一性分类

有时,原文件中有重复行,这时可以使用- u选项进行唯一性(不重复)分类以去除重复行,下例中A l i e

n有相同的两行。带重复行的文件

如下,其中A l i e n插入了两次:

[root@Linuxsvr lab]# cat video

Boys in Company C :HK :192 :2192

Alien :HK :119 :1982

The

Hill :KL :63 :2972

Aliens :HK :532 :4892

Star

Wars :HK :301 :4102

A Few Good

Men :KL :445 :5851

Toy

Story :HK :239 :3972

Aliens :HK :532 :4892

使用- u选项去除重复行,不必加其他选项, sort会自动处理。

[root@Linuxsvr lab]# sort -u video

A Few Good

Men :KL :445 :5851

Alien :HK :119 :1982

Aliens :HK :532 :4892

Boys in Company C :HK :192 :2192

Star

Wars :HK :301 :4102

The

Hill :KL :63 :2972

Toy

Story :HK :239 :3972

[root@Linuxsvr lab]# sort video

A Few Good

Men :KL :445 :5851

Alien :HK :119 :1982

Aliens :HK :532 :4892

Aliens :HK :532 :4892

Boys in Company C :HK :192 :2192

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值