最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Linux命令之sort

XAMPP相关 admin 71浏览 0评论

前言

sort命令用于将文本文件内容加以排序,并将排序结果标准输出。
sort可针对文本文件的内容,以行为单位来排序。
sort命令既可以从特定的文件,也可以从stdin中获取输入。
sort命令的功能是对文件内容进行排序。
sort默认按照从小到大进行排序。

1、功能说明

将文件进行排序,并将排序结果标准输出

2、语法格式

sort [参数][文件]

3、选项解释

 -b  忽略每行前面开始出的空格字符
 -n  依照数值的大小排序
 -r  倒序排序
 -u  去除重复行
 -t <分隔字符> 指定排序时所用的栏位分隔字符
 -k  指定区间排序
 
 -o <输出文件> 将排序后的结果存入指定的文件
 -c  检查文件是否已经按照顺序排序
 -d  除字母、数字及空格字符外,忽略其他字符
 -f  将小写字母视为大写字母
 -m  将几个排序号的文件进行合并

4、参考实例

准备数据sort.txt:
1 北京 1.202.80.66
3 重庆 42.123.128.0
7 成都 61.188.0.0
4 上海 211.80.0.0
2 云南 42.242.0.0
5 浙江 58.100.0.0
3 重庆 42.123.128.0
1 北京 1.202.80.66
  • 默认以行为单位进行排序
[root@xn ~]# sort sort.txt
1 北京 1.202.80.66
1 北京 1.202.80.66
2 云南 42.242.0.0
3 重庆 42.123.128.0
3 重庆 42.123.128.0
4 上海 211.80.0.0
5 浙江 58.100.0.0
7 成都 61.188.0.0
  • 去除重复的行
[root@xn ~]# sort -u sort.txt
1 北京 1.202.80.66
2 云南 42.242.0.0
3 重庆 42.123.128.0
4 上海 211.80.0.0
5 浙江 58.100.0.0
7 成都 61.188.0.0
  • 对指定的文件内容按照数字大小进行排序
[root@xn ~]# sort -n sort.txt
1 北京 1.202.80.66
1 北京 1.202.80.66
2 云南 42.242.0.0
3 重庆 42.123.128.0
3 重庆 42.123.128.0
4 上海 211.80.0.0
5 浙江 58.100.0.0
7 成都 61.188.0.0
  • 对指定的文件内容倒序排序
[root@xn ~]# sort -r sort.txt
7 成都 61.188.0.0
5 浙江 58.100.0.0
4 上海 211.80.0.0
3 重庆 42.123.128.0
3 重庆 42.123.128.0
2 云南 42.242.0.0
1 北京 1.202.80.66
1 北京 1.202.80.66
  • 指定文件按照自定义分割符后再指定列排序
[root@xn ~]# sort -t ' ' -k3  sort.txt
以空格为分割符,然后以第三列的值排序。
1 北京 1.202.80.66
1 北京 1.202.80.66
4 上海 211.80.0.0
3 重庆 42.123.128.0
3 重庆 42.123.128.0
2 云南 42.242.0.0
5 浙江 58.100.0.0
7 成都 61.188.0.0
[root@xn ~]# sort -t '.' -k2  sort.txt
以.为分割符,然后以第二列的值排序。
5 浙江 58.100.0.0
3 重庆 42.123.128.0
3 重庆 42.123.128.0
7 成都 61.188.0.0
1 北京 1.202.80.66
1 北京 1.202.80.66
2 云南 42.242.0.0
4 上海 211.80.0.0
  • -t -k 的进阶使用
cat sort2.txt
  adm:x:3:4:adm --> adm:x:3[第三列]:4[第四列]:adm
  root:x:0:0:root
  root:x:0:5:root
  root:x:0:11:root
  root:x:0:10:root
  root:x:0:4:root
  sync:x:5:0:sync
  mail:x:8:12:mail
  lp:x:4:7:lp
  daemon:x:2:2:daemon
  halt:x:7:0:halt
  bin:x:1:1:bin
  shutdown:x:6:0:shutdow
  • 以冒号:为分割符,先按照第三列排序,再以第四列排序
[root@xn ~]# sort -n -t : -k 3,3 -k 4.1,4.2 sort2.txt
root:x:0:0:root
root:x:0:4:root
root:x:0:5:root
root:x:0:10:root
root:x:0:11:root
bin:x:1:1:bin
daemon:x:2:2:daemon
adm:x:3:4:adm
lp:x:4:7:lp
sync:x:5:0:sync
shutdown:x:6:0:shutdown
halt:x:7:0:halt
mail:x:8:12:mail
  • 以冒号:为分割符,先按照第三列倒序排序,再以第四列倒序排序
[root@xn ~]# sort -nr -t : -k 3,3 -k 4.1,4.2 sort2.txt
mail:x:8:12:mail
halt:x:7:0:halt
shutdown:x:6:0:shutdown
sync:x:5:0:sync
lp:x:4:7:lp
adm:x:3:4:adm
daemon:x:2:2:daemon
bin:x:1:1:bin
root:x:0:11:root
root:x:0:10:root
root:x:0:5:root
root:x:0:4:root
root:x:0:0:root
  • 将排序结果输出到指定文件,使用参数-o
  • 将排序的结果输出到文件sort3.txt文件中,如果输出文件不存在会自动创建
[root@xn ~]#sort -nr -t : -k 3,3 -k 4.1,4.2 sort2.txt -o /data/test/sort3.txt
[root@xn ~]# cat sort3.txt
mail:x:8:12:mail
halt:x:7:0:halt
shutdown:x:6:0:shutdown
sync:x:5:0:sync
lp:x:4:7:lp
adm:x:3:4:adm
daemon:x:2:2:daemon
bin:x:1:1:bin
root:x:0:11:root
root:x:0:10:root
root:x:0:5:root
root:x:0:4:root
root:x:0:0:root

5、-t -k进阶分析

 -n:是按照数字大小排序,
 -t:指定栏位分隔符为冒号,
 -r:是以相反顺序,
 -k:是指定需要排序的栏位,
   -k 3,3 按第三个字段开始到第三个字段结束排序
   -k 4.1, 4.2 按第四个字段第一个字符开始到第四个字段第二个字符结束排序
. 点号连接的是字符
, 逗号连接的是字段

转载请注明:XAMPP中文组官网 » Linux命令之sort

您必须 登录 才能发表评论!