sort 工具

sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。

sort 语法

sort [选项] 参数

sort常用选项

-f:忽略大小写
-b:忽略每行前面的空格
-M:按照月份进行排序
-n:按照数字进行排序
-r:反向排序
-u:表示相同的数据仅显示一行(去除不连续的重复)
-t:指定分隔符,默认使用[Tab]键分隔
-o <输出文件>:将排序后的结果转存至指定文件
-k:指定排序区域

范例演示

将/etc/passwd 文件中第三列进行排序,并将输出内容保存至user.txt 文件中

[root@localhost ~]# sort -t ':' -k 3 /etc/passwd -o user.txt          //将/etc/passwd 文件中第三列进行排序,并将输出内容保存至user.txt 文件中
[root@localhost ~]# cat user.txt         //查看文件
root:x:0:0:root:/root:/bin/bash
czt:x:1000:1000:czt:/home/czt:/bin/bash
ccc:x:1001:1001::/home/ccc:/bin/bash
......


uniq 工具

Uniq 工具在 Linux 系统中通常与 sort 命令结合使用,用于报告或者忽略文件中的重复行。

uniq语法

uniq [选项] 参数

uniq常用选项

-c:进行计数
-d:仅显示重复行
-u:仅显示出现一次的行(仅去除连续的重复)

范例演示

删除 testfile 文件中的重复行,并在行首显示该行重复出现的次数

[root@localhost ~]# vim testfile
Linux 10
Linux 20
Linux 30
Linux 30
Linux 30
CentOS 6.5
CentOS 6.5
CentOS 6.5
CentOS 7.3
CentOS 7.3
CentOS 7.3

[root@localhost ~]# uniq -c testfile          //*删除 testfile 文件中的重复行,并在行首显示该行重复出现的次数
      1 Linux 10
      1 Linux 20
      3 Linux 30
      3 CentOS 6.5
      3 CentOS 7.3