linux_sort排序数据

sort:对数据进行排序

处理大量的数据的时候,常用的命令是sort命令,sort命令是对数据进行排序的,默认情况下,sort命令按照会话指定的默认语言的排序规则对文本文件中的数据进行排序

举例1:

cat file1

one

two

three

four

five

 

sort file1

five

four

one

three

two

 

举例2:

cat file2

1

2

100

45

3

 

sort file2

1

100

2

3

45

 

默认情况下,sort命令会把数字当做字符来执行标准的字符排序,产生的输出可能根本就不是你要的,解决这个问题可用 -n 参数,它会告诉sort命令把数字识别成数字而不是字符,并按值排序

sort -n file2

1

2

3

45

100

 

sort命令参数

-b 排序时忽略起始的空白

-C 不排序,如果数据无序也不要报告

-c 不排序,但检查输入数据是不是已排序

-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符

-f 默认情况下,会将大写字母排在前面,这个参数会忽略大小写

-g 按通用数值来排序(跟-n不同,把值当成浮点数来排序,支持科学计数法表示的值)

-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符

-k 排序从POSI位置开始;如果指定了POS2的话,到POS2位置结束

-M 将前面3个字母依照月份的缩进进行排序

-m 将几个排序好的文件进行合并

-n 按字符串的数值来排序(并不是转换成浮点数)

-o 将排序结果写到指定的文件中

-R 按随机生成的散列表的键值排序

-r 反序排序(升序变成降序)

-S 指定使用的内存大小

-s 禁用最后重排序比较

-T 指定一个位置来存储来临时工作文件

-t 指定一个用来区分键位置的字符

-u 和-c参数一起使用时,检查严格排序;不和-c参数一起使用时,仅输出第一例相似的两行

-z 用NULL字符作为行尾,而不是用换行符

 

sort的-u选项它的作用很简单,就是在输出行中去除重复行

cat file3

apple

banana

pear

orange

apple

pear

 

sort -u file3

apple

banana

orange

pear

 

sort的-t 选项和-k选项

这个文件有三列,列与列之间用“-”隔开了,第一列表示年,第二列表示月,第三列表示日。以月来排序,也就是第二列来排序,sort提供-t选项,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数了

cat file4

2018-11-20

2018-01-22

2018-04-24

2018-10-11

 

sort -n -k 2 -t'-' file4

2018-01-22

2018-04-24

2018-10-11

2018-11-20

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值