每天学习一个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命令的奥秘吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【小熊猫 ide】更新支持mingw 支持c++20

没有format 头文件 GCC版本对C++的支持情况即使我使用11,也没有format 头文件小熊猫 ide https://wwe.lanzoui.com/b01os0mwd最新11可以自己更新https://royqh1979.gitee.io/redpandacpp/docsy/docs/gcc13 才支持format [7GCC 13 has added support for std::format.](https:/…

算法刷题笔记(3.25-3.29)

算法刷题笔记 3.25-3.29 1. 相同的树2. 二叉树的最近公共祖先3. 二叉搜索树中第K小的元素通过双端队列duque 中序遍历 4. 二叉树的锯齿形层序遍历new LinkedList<Integer>(levelList)双端队列复制 数组需要左右顺序&#xff0c;考虑双端队列 5. 岛屿数量6. 字典序排数&am…

Device Change-Procedure

Start Conditions: • The Service Provider has provided to the SM-DP the relevant information and configuration for the Device Change (see Annex O). • The End User has an old Device containing a Profile. • The eUICC and the LPAd of the old Device support …

python---基础(一)

文章目录 前言1.对象的基本组成2.变量和常量2.1.变量的声明2.2.常量_链式赋值_系列解包赋值2.2.1.常量是不是真的常量&#xff1f;2.2.2.链式赋值2.2.3.系列解包赋值 3.内置数据类型_基本算数运算符3.1四种内置数据类型3.2.基本运算符3.3.divmod() 前言 这几年&#xff0c;随着…

【Python】——变量名的命名规则

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

【C脚本】计算PCM的DBFS(分贝全尺度)

DBFS是分贝全尺度&#xff08;Decibels Full Scale&#xff09;的缩写&#xff0c;是一种用于衡量音频信号强度的单位。DBFS是相对于数字音频的最大可能幅度而言的&#xff0c;它的取值范围通常是从0到-∞。在DBFS中&#xff0c;0表示音频信号的最大幅度&#xff0c;-∞表示完全…

Dijkstra堆优化之蓝桥王国

Dijkstra堆优化 Dijkstra算法是一种用于解决单源最短路径问题的算法&#xff0c;即从图中的一个顶点出发到所有其他顶点的最短路径。然而&#xff0c;处理大图时&#xff0c;常规的Dijkstra算法可能会遇到性能问题。这就是Dijkstra的堆优化算法派上用场的地方。在堆优化版本中…

Python 用pygame简简单单实现一个打砖块

# -*- coding: utf-8 -*- # # # Copyright (C) 2024 , Inc. All Rights Reserved # # # Time : 2024/3/30 14:34 # Author : 赫凯 # Email : hekaiiii163.com # File : ballgame.py # Software: PyCharm import math import randomimport pygame import sys#…

(23)3.31 进阶指针

int main() { //指针数组 int* arr[4]; char* ch[5]; //数组指针 int arr2[5]; int(*pa)[5] &arr2; char* arr3[6]; char* (*p3)[6] &arr3; return 0; } int test(const char* str) { return 0; } int main() { …

OpenHarmony实战开发-如何使用rating组件实现星级打分功能。

介绍 本篇Codelab将引导开发者使用rating组件实现星级打分功能。 相关概念 rating组件&#xff1a;评分条&#xff0c;可根据用户判断进行打分。 环境搭建 软件要求 DevEco Studio版本&#xff1a;DevEco Studio 3.1 Release及以上版本。OpenHarmony SDK版本&#xff1a;A…

linux 一些命令

文章目录 linux 一些命令fdisk 磁盘分区parted 分区文件系统mkfs 格式化文件系统fsck 修复文件系统 mount 挂载swap 交换分区清除linux缓存df du 命令raid 命令基本原理硬raid 和 软raid案例raid 10 故障修复&#xff0c;重启与卸载 lvm逻辑卷技术LVM的使用方式LVM 常见名词解析…

Python爬虫详解:原理、常用库与实战案例

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言引言&#xff1a;一、爬虫原理1. HTTP请求与响应过程2. 常用爬虫技术 二、P…

【经典算法】LeetCode1:两数之和(Java/C/Python3实现含注释说明,Easy)

两数之和 题目思路及实现方式一&#xff1a;暴力解法&#xff08;不推荐&#xff09;思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二&#xff1a;哈希表&#xff08;推荐&#xff09;思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式三&#xff1a;双指…

【C++程序员的自我修炼】基础语法篇(二)

风力掀天浪打头 只须一笑不须愁 目录 内联函数 概念&#x1f49e; 性质 ⭐ 不建议变量分离 inline的优劣势 inline的局限性 auto关键字 auto的概念&#x1f49e; auto的使用细则&#x1f49e; auto不能推导的场景 &#x1f49e; auto基于范围的for循环&#x1f49e; 指针空值n…

nginx的安装教程

文章目录 简介nginx安装windows下安装linux下安装 简介 nginx是一个开源的web服务器和反向代理服务器&#xff0c;可以用作负载均衡和HTTP缓存。它处理并发能力是十分强大的&#xff0c;能够经受高负载的考验。 正向代理 Nginx不仅可以做反向代理&#xff0c;实现负载均衡&am…

简单说清楚什么是SQL Injection?

最近看完了《The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery》&#xff0c;在第7章&#xff1a;While You Are Coding的footnotes中&#xff0c;提到了一幅漫画&#xff1a; 这不仅用简单的方式说清楚了什么是SQL Injection&#…

C语言数据结构易错知识点(6)(快速排序、归并排序、计数排序)

快速排序属于交换排序&#xff0c;交换排序还有冒泡排序&#xff0c;这个太简单了&#xff0c;这里就不再讲解。 归并排序和快速排序都是采用分治法实现的排序&#xff0c;理解它们对分支思想的感悟会更深。 计数排序属于非比较排序&#xff0c;在数据集中的情况下可以考虑使…

百度贝塞尔曲线证码识别代码

一、前言 百度出了如图所示的验证码&#xff0c;需要拖动滑块&#xff0c;与如图所示的曲线轨迹进行重合。经过不断研究&#xff0c;终于解决了这个问题。我把识别代码分享给大家。 下面是使用selenium进行验证的&#xff0c;这样可以看到轨迹滑动的过程&#xff0c;如果需要…

关于c# 没有显式头文件的优劣分析

在C#中&#xff0c;没有像C或C中的显式头文件&#xff08;header files&#xff09;的概念。在C#中&#xff0c;源代码文件通常包含类、接口、结构和其他类型的定义&#xff0c;这些源文件直接包含在项目中&#xff0c;并且通过命名空间&#xff08;namespace&#xff09;来组织…

Windows11系统缺少相关DLL解决办法

一.缺少msvcp120.dll 下载Mircrosoft Visual C 2015等系统关键组件 Microsoft Visual C 2015-2022 Redistributable (x86) - 14.34.31931 Installation Error etc.. - Microsoft Q&A 二.缺少python27.dll 重新下载python2.7进行安装(选择Windows x86-64 MSI installer)…