c++从txt中读取数据_史上最全的uniq用法,学会它工作中游刃有余

412c72184d269d2c288306839dc8c203.png

一、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 66Linda Linux 85 XY PHP 66XY Java 55Mike Scala 30SS Shell 99

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

uniq -c test.txt
872e259d57c4fb9f19790b75713a4fd0.png

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

 sort test.txt | uniq -c
c2ad363b5124a0c37983edea1bd460b1.png

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

cat test.txt | uniq -d 
56e6448660a0b6bc0fbe6f15c6578c10.png

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

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

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

sort test.txt | uniq -d
486019c9c59231fb2e5f1c641a7d7d0f.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 }'
0c84ac705b437afed8f89f1bc1c02dad.png

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

cat test.txt | uniq -u
6c41542452be883b3aa78106769ec421.png

也可以使用awk解决

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

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

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

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

sort test.txt | uniq -s 1 -d

d7a285b8cb6bc6160fff05022cff004e.png

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

sort -k2 test.txt | uniq -f 1 -d

567f29cad5aa7fe6366795c036e3c6e5.png

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

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

3072e690458e68a8d68940d2c82f4c75.png

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

sort test.txt | uniq -D

c4c7d3f2c9441f991b82b9961446ae9c.png

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

sort test.txt | uniq -w 3 -d

c418a10dceae7ecbd40e003f09a3c4eb.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值