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 或任何其他工具从包含财务或其他重要数据的文件中除去重复 行。在这种情况下,重复行几乎总是表示同一金额的另一个交易,将它除去会给会计 部造成许多困难。

相关文章
|
6月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
740 1
二、Linux文本处理与文件操作核心命令
|
6月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
435 137
|
6月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1148 58
|
5月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1024 2
|
6月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
556 0
Linux内存问题排查命令详解
|
6月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
529 16
|
7月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
1194 0
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
284 1
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
196 0