linux中的sort命令

sort命令很常用,也很强大。不过上网看教程看起来很繁琐~因为参数太多,不过需要有点耐心。

sort命令的一般格式为:

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

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

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

-d 以字典的顺序排序

-f 排序时忽略大小写

-g 按数值大小排序

-m 合并两个分类文件。

-u 删除所有复制行。

-o 存储sort结果的输出文件名。

其他选项有:

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

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

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

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

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

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

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

最基本的sort方式为sort filename,按第一域进行分类(分类键0)。实际上读文件时sort操作将行中各域进行比较,这里返回基于第一域sort的结果: sort -t: /etc/passwd > passwd.bak

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

有时需要只按第2域(分类键1)分类。这里为重排报文中供应区代码,使用t 1,意义为按分类键1分类: sort -t: +1 /etc/passwd > passwd.bak

如果是数值域,即为数值分类,可以使用- n选项: sort -t: +2n /etc/passwd > passwd.bak

有时,原文件中有重复行,这时可以使用- u选项进行唯一性(不重复)分类以去除重复行: sort -u /etc/passwd > passwd.bak

可以指定分类键次序。先以第4域,再以第1域分类,命令为-k4 -k1 sort -t: -k4 -k1 /etc/passwd > passwd.bak

sort还可以用于d f命令,以递减顺序打印使用列:(下面是按占用空间百分比,第4+1域) df | sort -r +4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值