shell编程之sort命令和uniq命令:数据排序去重命令
Posted 锦衣admin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之sort命令和uniq命令:数据排序去重命令相关的知识,希望对你有一定的参考价值。
shell编程之sort命令和uniq命令:数据排序去重命令
sort命令:数据排序命令
作用:复制对数据进行排序
用途:可以与uniq命令一起进行去重
sort命令说明:
命令格式:
# sort 选项 选项的值 filename
选项说明:
-n :以数字排序,不加-n选项 默认是按字符排序
-r :降序排列,不指定-r选项 默认是升序
-k :第N列。1️以第N列的数据进行排序
-t :分隔符
-u :去除重复行
-o : 将排序结果输出到文件中 类似 重定向符号>
-b :忽略前导空格。
-R :随机排序,每次运行的结果均不同。
演示:
# sort -n -t: -k3 1.txt => 指定分隔符":",以第三列的数据通过数字的形式进行默认排序
# sort -nr -t: -k3 1.txt => 指定分隔符":",以第三列的数据通过数字的形式进行降序排序
# sort -n 1.txt => 按照数字排序
# sort -nu 1.txt => 按照数字排序并且去重,去除重复的行,只保留一行
# sort -nr 1.txt => 按照数字倒序排序
# sort -nru 1.txt => 按照数字倒序排序,并去除重复的行,只保留一行
# sort -nru passwd => 只按照行第一个字符是数字进行倒序排序,并去除其余不是数字开头的行
# sort -n 1.txt -o 1.txt => 按照数字排序并将结果重定向到文件
# sort -R 1.txt => 随机排序,每次运行的结果均不同
# sort -u 1.txt => 去除重复行
uniq命令:数据去重
作用:去除连续的重复行
用途:与sort命令使用对数据进行去重
sort命令和uniq命令配合使用,先用sort命令排序,然后uniq命令去重:先排序后去重
uniq命令说明:
命令格式:
# uniq 选项 filename
或
# sort 选项 选项的值 filename | uniq 选项 filename
选项说明:
-i:忽略大小写
-c:统计重复行次数
-d:只显示重复行,只显示上下行关系重复行
#l 注意:
uniq执行去除连续重复行,如果重复的行数据不是上下行关系则去除不了
所以通过sort先进行排序,然后在uniq去重
演示:
# uniq 2.txt => 去除连续的重复行,不连续的去除不了
[root@server ~]# cat 2.txt
22
22
33
3
33
[root@server ~]# uniq 2.txt
22
33
3
33
# uniq -d 2.txt => 只显示连续的重复行
[root@server ~]# uniq -d 2.txt
22
# uniq -dc 2.txt => 只统计连续的重复行出现的次数
[root@server ~]# uniq -dc 2.txt
2 22
与sort命令一起使用:
# sort -n 2.txt |uniq -dc => sort命令排序后,就能统计两个连续的重复行了
[root@server ~]# sort -n 2.txt |uniq -dc
2 22
2 33
以上是关于shell编程之sort命令和uniq命令:数据排序去重命令的主要内容,如果未能解决你的问题,请参考以下文章