Shell 学习8(sort命令)

Sort命令

很常用!和awk类似  都吧文件看作域和记录,默认域分割符是空格


sort命令与awk一样,将文件看作记录和域进行处理,默认的域分隔符是空格符,sort命令的格式为:

sort [选项] [输入文件]
-c 测试文件是否已经排序
-k 指定排序的域(默认是第一个字符)
-m 合并
-n  根据数字大小进行排序
-o 将输出写到指定的文件 相当于将输出重定向到指定文件
-r 将文件结果逆向!!!!!!!!!!!!!!!!
-t 改变域分割符
-u 取出结果中的重复行


eg: 
文件内容 :

ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
HP:China:5600:2010:DM3 
SumSung:Korea:5400:2009:Q308 
ThinkPad:USA:14000:2009:X301 
IdeaPad:China:8000:2007:U450 
Acer:Taiwan:8000:2010:PT210 
Acer:Taiwan:8000:2010:PT210 

-t选项可用于设置分隔符 
sort -t: CARGO.db  (按照:分割!!,默认情况下是按照第一个字符排序的)
结果:
Acer:Taiwan:8000:2010:PT210 
Acer:Taiwan:8000:2010:PT210 
HP:China:5600:2010:DM3 
IdeaPad:China:8000:2007:U450 
SumSung:Korea:5400:2009:Q308 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 

-k选项用于指定排序的域,sort默认按第1域进行排序 
eg : 
sort -t: -k2 CARGO.db   按照第二域排序(是按照字符排的序 默认情况下都按照字符,所以如果域是数字的话,100要在50的前面 下个例子按照数字排序)

结果:
HP:China:5600:2010:DM3 
IdeaPad:China:8000:2007:U450 
SumSung:Korea:5400:2009:Q308 
Acer:Taiwan:8000:2010:PT210 
Acer:Taiwan:8000:2010:PT210 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 

-n选项用于指定按数值大小进行排序 
eg  sort -t: -k3n CARGO.db
SumSung:Korea:5400:2009:Q308 
HP:China:5600:2010:DM3 
Acer:Taiwan:8000:2010:PT210 
Acer:Taiwan:8000:2010:PT210 
IdeaPad:China:8000:2007:U450 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 

-r选项用于将排序结果逆向显示 
eg : sort -t: -k3nr CARGO.db
结果
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
ThinkPad:USA:14000:2009:X301 
Acer:Taiwan:8000:2010:PT210 
Acer:Taiwan:8000:2010:PT210 
IdeaPad:China:8000:2007:U450 
HP:China:5600:2010:DM3 
SumSung:Korea:5400:2009:Q308 

-u选项用于去除排序结果中的重复行 
单独写哦 亲!!
sort -t: -k3nr -u CARGO.db 
结果:
ThinkPad:USA:14000:2009:X301 
IdeaPad:China:8000:2007:U450 
HP:China:5600:2010:DM3 
SumSung:Korea:5400:2009:Q308 

-c 测试文件是否已经排序
eg sort -c CARGO.db 
结果;
sort:CARGO.db:4:无序: HP:China:5600:2010:DM3 

-m 合并
两个文件必须排好(默认第一个字符!)
sort -t: -m file1 file2

-o 将输出写到指定的文件 相当于将输出重定向到指定文件
 sort -t: -k3n -o comprice CARGO.db  单独写哦 亲!!
输出到comprice中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值