每天学习一个Linux命令之uniq

2024-04-01 16:04
文章标签 linux 学习 命令 每天 uniq

本文主要是介绍每天学习一个Linux命令之uniq,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每天学习一个Linux命令之uniq

介绍

在Linux操作系统中,有许多强大的命令可以帮助我们提高工作效率。本篇博客将详细介绍一个非常有用的命令:uniquniq命令用于从已排序的文件或标准输入中删除重复的行,并将结果输出到标准输出中。

命令格式

uniq [选项] [输入文件]

选项

uniq命令有许多可用的选项,让我们逐个来了解一下每个选项的用法。

  • -c:在输出行前加上该行在输入文件中出现的次数。
  • -d:仅显示重复的行。
  • -u:仅显示在输入文件中仅出现一次的行。
  • -f <字段>:忽略前面的<字段>个字段。
  • -s <字符>:从每行的第<字符>个字符开始进行比较。默认情况下,<字符>为0,即从每行的第一个字符进行比较。
  • -i:忽略大小写。
  • -w <字符>:指定用于比较的最大字符数。
  • -z:将输入文件视为已压缩文件。
  • -:将标准输入视为输入文件。

用法示例

示例 1:删除重复的行

假设我们有一个名为file.txt的文件,内容如下:

apple
banana
apple
orange
banana

要删除重复的行并输出结果,我们可以使用以下命令:

uniq file.txt

输出结果为:

apple
banana
apple
orange
banana

示例 2:统计重复行的次数

如果我们想要在输出的每行前面添加该行在输入文件中出现的次数,我们可以使用-c选项。还是以file.txt为例,使用以下命令进行操作:

uniq -c file.txt

输出结果为:

   2 apple2 banana1 apple1 orange1 banana

示例 3:仅显示重复的行

如果我们只想要显示重复的行,并删除没有重复的行,可以使用 -d选项。继续以file.txt为例,使用以下命令:

uniq -d file.txt

输出结果为:

apple
banana

示例 4:仅显示不重复的行

相反,如果我们只想要显示在输入文件中仅出现一次的行,可以使用-u选项。

uniq -u file.txt

输出结果为:

orange

示例 5:指定忽略字段和字符数量

在某些情况下,我们可能想要从比较中忽略文件的特定字段,或者指定从每行的特定字符开始进行比较。这时可以使用-f-s选项。

假设我们有一个名为data.txt的文件,内容如下:

1 apple
2 banana
3 apple
4 orange
5 banana

如果我们想要从第二个字段开始进行比较,并忽略前面的字段,则可以使用以下命令:

uniq -f 1 data.txt

输出结果为:

1 apple
2 banana
4 orange

如果我们只想要从每行的第三个字符开始进行比较,则可以使用以下命令:

uniq -s 2 data.txt

输出结果为:

1 apple
3 apple

示例 6:忽略大小写

默认情况下,uniq命令是区分大小写的。但是,如果我们希望在比较中忽略大小写,则可以使用-i选项。

假设我们有一个名为fruits.txt的文件,内容如下:

Apple
apple
banana
Banana

要忽略大小写,并删除重复的行,可以使用以下命令:

uniq -i fruits.txt

输出结果为:

Apple
banana

示例 7:处理压缩文件

如果我们想要处理一个已经压缩的文件,则可以使用-z选项。

假设我们有一个名为data.txt.gz的已压缩文件,要将其解压并删除重复的行,可以使用以下命令:

gunzip -c data.txt.gz | uniq -u

gunzip -c用于解压缩文件,并将结果通过管道传递给uniq -u命令。

结论

uniq命令是一个非常有用的命令,可以帮助我们删除重复的行,统计重复行的次数,并根据不同的选项进行比较。通过本篇博客,我们详细介绍了uniq命令的各种选项和用法示例,希望对你有所帮助。不要停止学习,继续探索Linux命令的奥秘吧!

这篇关于每天学习一个Linux命令之uniq的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867575

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与