10.Linux文件管理命令---uniq忽略文件中的重复行

简介: 10.Linux文件管理命令---uniq忽略文件中的重复行

uniq忽略文件中的重复行

作用:文件经过处理后,在它的输出文件中可能会出现重复的行。例如,使用 cat 命令将

两个文件合并后,再使用 sort 命令进行排序,就可能出现重复行。这时可以使用 uniq 命令将这

些重复行从输出文件中删除,只留下每条记录的唯一样本。

用法:uniq [选项]…[输入[输出]]

主要选项如下。

长选项必须使用的参数对于短选项也是必须使用的。

命令 描述
-c,--count 在每行前加上表示相应行目出现次数的前缀编号。
-d,--repeated 只输出重复的行。
-D,--all-repeated[=delimit-method 显示所有重复的行。
delimit-method={none(default),prepend,separate} 以空行为界限。
-f,--skip-fields=N 在比较时跳过前 N 列。
-i,--ignore-case 在比较的时候不区分大小写。
-s,--skip-chars=N 在比较时跳过前 N 个字符。
-u,--unique 只显示唯一的行。
-z,--zero-terminated 使用’\0’作为行结束符,而不是新换行。
-w,--check-chars=N 对每行第 N 个字符以后的内容不作对照。
--help 显示此帮助信息并退出。
-version 显示版本信息并退出。

案例练习

首先看一下示例文件。

$ cat happy 
Happy Birthday to You! 
Happy Birthday to You! 
Happy Birthday Dear cjh! 
Happy Birthday to You!

(1)显示文件 happy 中不重复的行。

# uniq -u happy 
Happy Birthday Dear cjh! 
Happy Birthday to You! 

(2)显示文件 happy 中不重复的行,从第二个字段的第二个字符开始进行比较。

#uniq -u -1 +1 happy

(3)用-c 选项从 uniq 中获取一些统计信息。

#sort happy | uniq -dc 
3 Happy Birthday to You! 

这里uniq命令借助管道命令从标准输入设备读取文件,首先使用sort命令对文件进行排序, 然后对排序结果进行操作。

(4)删除文件中重复的行并输出到一个新文件。

#sort happy|uniq-uniqhappy

(5)高级应用。

就算 uniq 对完整的行进行比较,它仍然会很有用,但是那并非该命令的全部功能。特别方 便的是,使用-f 选项,后面跟着要跳过的字段数,它能够跳过给定数目的字段。在查看系统日 志时非常有用。通常,某些项要被复制许多次,这使得查看日志很困难。使用简单的 uniq 无法 完成任务,因为每一项都以不同的时间戳记开头。但是如果告诉它跳过所有的时间字段,日志 一下子就会变得便于管理。试一试 uniq -f 3 /var/log/messages。还有另一个选项-s,它的功能就 像-f 一样,但是跳过给定数目的字符。可以一起使用-f 和-s,uniq 先跳过字段,再跳过字符。 如果只想使用一些预先设置的字符进行比较,试试-w 选项。

注意:请不要使用 uniq 或任何其他工具从包含财务或其他重要数据的文件中除去重复 行。在这种情况下,重复行几乎总是表示同一金额的另一个交易,将它除去会给会计 部造成许多困难。

相关文章
|
4天前
|
Linux Python Perl
Linux命令删除文件里的字符串
Linux命令删除文件里的字符串
15 7
|
4天前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
6天前
|
Linux Perl
Linux之sed命令
Linux之sed命令
|
3天前
|
安全 Linux 数据安全/隐私保护
探索Linux操作系统的文件权限管理
【9月更文挑战第29天】在数字世界中,文件权限管理如同保护我们隐私的锁。本文将带你了解如何在Linux系统中设置和管理文件权限,确保你的数据安全。我们将一起学习如何通过命令行工具来控制文件访问,就像学习一门新语言一样有趣。准备好了吗?让我们一起开启这场技术之旅!
|
5天前
|
Linux
深入理解Linux中的cp命令:文件与目录的复制利器
深入理解Linux中的cp命令:文件与目录的复制利器
|
6天前
|
Linux Docker 容器
9. 同步执行Linux多条命令
9. 同步执行Linux多条命令
|
6天前
|
Ubuntu Linux Shell
10-21|在linux我如果修改了时间,什么命令可以恢复正确啊
10-21|在linux我如果修改了时间,什么命令可以恢复正确啊
|
3月前
|
Linux
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
|
3月前
|
Linux
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
|
3月前
|
Linux
Linux02---命令基础 Linux命令基础, ls命令入门,ls命令参数和选项,命令行是一种以纯字符操作系统的方式,command命令本身,options命令的细节行为,parameter命令的
Linux02---命令基础 Linux命令基础, ls命令入门,ls命令参数和选项,命令行是一种以纯字符操作系统的方式,command命令本身,options命令的细节行为,parameter命令的
下一篇
无影云桌面