sort

sort将文件内容加以排序,以行为单位

 1 #首先文本是这样
 2 q:118:5650
 3 j:217:5300
 4 c:302:4950
 5 q:118:5650
 6 m:441:5450
 7 f:515:5100
 8 v:713:5900
 9 t:817:5800
10 t:817:5800
11 c:797:4950
12 m:986:5450
13 m:986:5450
14 o:1115:5550

sort不使用参数的时候

nange@meishi:~$ cat 33.txt |sort
c:302:4950
c:797:4950
f:515:5100
j:217:5300
m:441:5450
m:986:5450
m:986:5450
o:1115:5550
q:118:5650
q:118:5650
t:817:5800
t:817:5800
v:713:5900
#sort不使用参数的时候,只是将文本排序了而已,并没有去除重复的数据

sort -u可以去除重复的数据

 1 nange@meishi:~$ cat 33.txt |sort -u
 2 c:302:4950
 3 c:797:4950
 4 f:515:5100
 5 j:217:5300
 6 m:441:5450
 7 m:986:5450
 8 o:1115:5550
 9 q:118:5650
10 t:817:5800
11 v:713:5900

sort -t和-k配合其他使用

 1 #-t指定分隔符
 2 #-k指定按照第几列排序
 3 nange@meishi:~$ cat 33.txt |sort -k 3 -t ':'
 4 c:302:4950
 5 c:797:4950
 6 f:515:5100
 7 j:217:5300
 8 m:441:5450
 9 m:986:5450
10 m:986:5450
11 o:1115:5550
12 q:118:5650
13 q:118:5650
14 t:817:5800
15 t:817:5800
16 v:713:5900
17 #使用-u去重
18 nange@meishi:~$ cat 33.txt |sort -uk 3 -t ':'
19 c:302:4950
20 f:515:5100
21 j:217:5300
22 m:441:5450
23 o:1115:5550
24 q:118:5650
25 t:817:5800
26 v:713:5900
27 #使用-u去重,-r逆向排序
28 nange@meishi:~$ cat 33.txt |sort -ruk 3 -t ':'
29 v:713:5900
30 t:817:5800
31 q:118:5650
32 o:1115:5550
33 m:441:5450
34 j:217:5300
35 f:515:5100
36 c:302:4950

排序选项:

-b, --ignore-leading-blanks 忽略前导的空白区域
-d, --dictionary-order 只考虑空白区域和字母字符
-f, --ignore-case 忽略字母大小写
-g, --general-numeric-sort compare according to general numerical value
-i, --ignore-nonprinting consider only printable characters
-M, --month-sort compare (unknown) < 'JAN' < ... < 'DEC'
-h, --human-numeric-sort 使用易读性数字(例如: 2K 1G)
-n, --numeric-sort 根据字符串数值比较  
-R, --random-sort 根据随机hash 排序
--random-source=文件 从指定文件中获得随机字节
-r, --reverse 逆序输出排序结果
--sort=WORD 按照WORD 指定的格式排序:
一般数字-g,高可读性-h,月份-M,数字-n,
随机-R,版本-V
-V, --version-sort 在文本内进行自然版本排序

其他选项:

--batch-size=NMERGE 一次最多合并NMERGE 个输入;如果输入更多
则使用临时文件
-c, --check, --check=diagnose-first 检查输入是否已排序,若已有序则不进行操作
-C, --check=quiet, --check=silent 类似-c,但不报告第一个无序行
--compress-program=程序 使用指定程序压缩临时文件;使用该程序
的-d 参数解压缩文件
--debug 为用于排序的行添加注释,并将有可能有问题的
用法输出到标准错误输出
--files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被
指定为"-"则从标准输入读文件名
-k, --key=KEYDEF sort via a key; KEYDEF gives location and type
-m, --merge merge already sorted files; do not sort
-o, --output=文件 将结果写入到文件而非标准输出
-s, --stable 禁用last-resort 比较以稳定比较算法
-S, --buffer-size=大小 指定主内存缓存大小
-t, --field-separator=分隔符 使用指定的分隔符代替非空格到空格的转换
-T, --temporary-directory=目录 使用指定目录而非$TMPDIR 或/tmp 作为
临时目录,可用多个选项指定多个目录
--parallel=N 将同时运行的排序数改变为N
-u, --unique 配合-c,严格校验排序;不配合-c,则只输出一次排序结果
-z, --zero-terminated 以0 字节而非新行作为行尾标志
--help 显示此帮助信息并退出
--version 显示版本信息并退出

原文地址:https://www.cnblogs.com/yingnan/p/4625087.html