目录
1. 语法
sort [选项] [文件]
1.1. 常用参数
常用选项(所有排序为升序,使用降序可加入-r)
-n:按数值排序
-h:按单位大小排序(例如:K/M/G/T)
-k:通过键排序,指定第几列进行排序
-R:随机排序(可用于生成随机数)
-M:将前面3个字母依照月份的缩写进行排序
-r:反转排序结果
-u:去重
-t:指定分隔符
-b:忽略第一列前的空白
-d:只考虑空格、字母、数字、字符(空格 > 特殊字符 > 数字 > 字母)
-i:只考虑可打印字符
-f:忽略大小写,将小写字母折叠成大写字母
-V:排序优先级为数字(数字 > 字母 > 特殊字符)
-m:同时查看多个文件
-o:将结果写入文件,而不是标准输出
-c:检查是否为升序。若是升序,那么无输出,状态码为0;反之输出第一行的错误,状态码为1
-C:同-c,但是不会输出结果
-s:通过禁用最后的比较来稳定排序
-S:使用SIZE作为主内存缓冲区
-z:以0字节结束行,而不是换行符
2. 常见用法
2.1. 按数值排序
按第一个数字的值进行排序
sort
按正常数字大小升序
sort -n
按正常数字大小降序
sort -n -r
2.2. 按文件大小排序
按文件大小升序
sort -h
按文件大小降序
sort -h -r
2.3. 指定某一列排序
指定第10列升序
sort -k 10 -n
指定第10列降序
sort -k 10 -r -n
指定第10列降序,且指定分隔符
sort -k 10 -r -n -t ','
2.4. 去重后排序
sort -u
2.5. 生成随机数
生成0-9随机6位数
seq 0 9 |sort -R |head -6 |xargs |tr -d ' '
生成0-9随机7位数
seq 0 9 |sort -R |head -7 |xargs |tr -d ' '
生成1-9随机8位数
seq 1 9 |sort -R |head -8 |xargs |tr -d ' '
2.6. 同时查看多个文件
sort -m [文件1] [文件2] [文件3]
2.7. 排序后的值写入文件(可直接修改文件)
先对file.txt进程排序,再将排序的结果写到文件file.txt,这个操作为覆盖
sort -n file.txt -o file.txt