流年似水博客开通了,本站主要是写关于Web和大数据方面内容,正在更新中,欢迎大家光临!
  1. 文章:97 篇
  2. 总浏览:55,051 次
  3. 评论:22条
  4. 最后更新:2020-06-08
  5. 分类目录:39 个

uniq命令解析以及案例

Command l, xy 420℃ 0评论

uniq命令解析以及案例

 

一、uniq介绍

    uniq是unix-like系统中一个过滤文本重复行的工具。uniq可以删除重复行,显示重复行的数量。并且可以只显示重复行数据,只显示非重复行数据,忽略字符或者字段比较是否重复。但是这个命令对于重复行的判断仅限于相邻行。因此uniq命令常常与sort一起使用。本文将详细讲解uniq的参数以及使用技巧。

二、uniq命令参数介绍

    2.1 使用方法

uniq [option] filename

         2.2 uniq参数详细介绍

        

参数 解释
-c 显示重复行数量
-d  只显示重复行,每组显示第一个
-D  显示所有重复行
-f 跳过n个字段判断是否重复,下标从1开始
--group 显示所有字段,使用空行分隔每一组
-i         忽略大小写比较重复行
-s 跳过n个字符判断是否重复,下标从1开始
-u     只显示非重复的行
-z 结束行是0byte,不是新行
-w 指定前n个字符判断是否重复

三、uniq应用案例

假设我们的案例数据保存的文件test.txt中,案例数据如下:     

数据解释: 姓名 科目 分数

数据使用空格分隔。

说明一下 sJack Python 95 这条数据在3.1 -3.4,以后这条数据修改为:bJack Python 95

Tom Scala 30  
Tom Scala 30  
Tom Java 30  
aJack Python 95  
bJack Python 95  
Jack Spring 95  
Mike Java 95  
Linda Linux 85  
Linda PHP 66
Linda Linux 85  
XY PHP 66
XY Java 55
Mike Scala 30
SS Shell 99

     3.1 查看test.txt文件中相邻行数据重复的数量

uniq -c test.txt
image.png

    3.2 查看test.txt文件中数据重复的数量

 sort test.txt | uniq -c

image.png

    3.3 查看test.txt文件中相邻行重复的数据

cat test.txt | uniq -d 
image.png

              也可以使用awk来解决这个问题

uniq -c test.txt | awk '$1 > 1 {print} '
或者
uniq -c test.txt | awk '{if($1 > 1) print} '
image.png

    3.4 查看test.txt文件中重复行的数据

sort test.txt | uniq -d

image.png

            也可以使用awk来解决

sort test.txt | uniq -c | awk '$1 > 1 {print}'
或者
sort test.txt | uniq -c | awk '{if($1 > 1) print }'

# 不显示重复个数
sort test.txt | uniq -c | awk '{if($1 > 1) print $2,$3,$4 }'
image.png

    3.5 查看test.txt文件中相邻行不重复的数据

cat test.txt | uniq -u

image.png

也可以使用awk解决

uniq -c test.txt | awk '$1 == 1 {print}'
或者
uniq -c test.txt | awk '{if($1 == 1) print $2,$3,$4}'

image.png

    3.6 查看test.txt文件中不重复的行

sort test.txt | uniq -u 
或者
sort test.txt | uniq -c | awk '{if($1 == 1) print}'

image.png

    3.7 忽略每行第一个字符,找出test.txt文件中具有相同行的数据

sort test.txt | uniq -s 1 -d
image-15684813262810_image.webp

   3.8 忽略每行第一个字段,找出test.txt文件中具有相同行的数据

sort -k2 test.txt | uniq -f 1 -d
image-15684813261507_image(1).webp

    3.9 查看test.txt文件中学生选择最多的科目(去重数据)

sort -k2  test.txt | uniq | awk '{print $2}' | uniq -c | sort -k1r | head -n 1
   

image-15684813267881_image(2).webp

     3.10  查看test.txt文件中所有的重复行

sort test.txt | uniq -D
 

image-15684813268248_image(3).webp

 

    3.11  查看前3个字符相同的数据

sort test.txt | uniq -w 3 -d
image-15684813263668_image(4).webp

转载请注明:流年似水 » uniq命令解析以及案例

喜欢 (2)or分享 (0)

Warning: copy(https://cn.gravatar.com/avatar/?s=54&d=%2Fwp-content%2Fthemes%2Fyusi1.0%2Fimg%2Fdefault.png&r=g): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 239

Warning: copy(/wp-content/themes/yusi1.0/img/default.png): failed to open stream: No such file or directory in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 243
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址