『运维备忘录』之利用 uniq 命令轻松去重

运维人员不仅要熟悉操作系统、服务器、网络等知识,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 uniq 命令


一、简介

uniq是英文unique(唯一)的缩写。uniq 命令的作用是删除文件中的重复行。 uniq 命令读取由 InFile 参数指定的标准输入或文件。该命令首先比较相邻的行,然后除去第二行和该行的后续副本(如果两端相同内容,但中间夹杂了其他文本行,则需要先使用sort命令进行排序后再去重)。

1.1. 基本语法

uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ]

参数说明:

参数描述
-c       显示每行在文本中重复出现的次数
-u       仅显示没有重复的纪录
-d       设置每个重复纪录只出现一次
-w       仅对前N个字符进行比较
-D       显示所有相邻的重复行
-z       设置终止符(默认为换行符)
-f       跳过对前N个列的比较
-i       忽略大小写
-s       跳过对前N个字符的比较    
--help   显示帮助信息
--version显示版本信息

二、示例说明

下面我们一起通过一个实例来更具体的理解一下 uniq 命令。 

假设我们有一个文件 myfile.txt ,内容如下:

2.1. 不加参数 

如果我们想要去除其中的重复行,只需在终端输入以下命令:

$ uniq myfile.txt

注意:uniq 不会检查重复的行,除非它们是相邻的行。这个例子中有重复行,但是都不是相邻的行,所以重复的行还是会存在。记住必须要用s ort 提前对文本进行排序。

$ sort myfile.txt |uniq

 输出结果(重复行已删除):

2.2. -c 参数

如果我们想知道每个不同行出现的次数,可以使用-c参数。例如:

$ sort myfile.txt |uniq -c

输出结果:

2.3. -d 参数

如果我们只想保留重复出现的行(即去除不重复的行),可以使用-d参数。例如: 

$ sort myfile.txt |uniq -d

输出结果:

2.4. -u 参数

如果我们只想保留不重复的行(即去除重复出现的行),可以使用-u参数。例如: 

$ sort myfile.txt |uniq -u

输出结果:

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪字节π

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值