linux命令用于删除文本文件中的重复行的命令uniq详解

news2024/12/26 5:00:09

目录

一、概述

二、基本用法

1、uniq 命令的基本语法

2、常用选项

3、获取帮助

三、主要功能

1. 识别并删除相邻重复行

2. 保留重复行的第一个实例

3. 统计重复次数

4. 忽略指定列的比较

四、示例

 1. 删除相邻重复行

 2. 显示每一行及其重复次数

 3. 只显示重复行

 4. 只显示唯一行

 5. 忽略每行开头的 1 个字段

 6. 比较时忽略每行的前 3 个字符

 7. 忽略每行的前 2 列

五、实际应用场景

1、数据清洗

2、统计分析

3、脚本开发

六、其他


一、概述

        uniq 是 Linux 和 Unix 系统中一个非常有用的命令行工具,主要用于处理文本文件中的重复行。它可以识别相邻的重复行,并根据需要保留或删除这些重复行。

二、基本用法

1、uniq 命令的基本语法

uniq 命令的基本语法如下:

uniq [OPTION]... [INPUT [OUTPUT]]  

如果不指定输入文件,则默认从标准输入(stdin)读取数据。

(1) input-file 是要处理的输入文件名。如果未指定,uniq 将从标准输入读取数据。

(2)output-file 是输出文件的名称。如果未指定,uniq 将把结果输出到标准输出。

2、常用选项

(1). -c:

   - 显示每一行及其重复次数。

   - 示例:    

     uniq -c input_file   

(2). -d:

   - 只显示重复行。

   - 示例:    

     uniq -d input_file    

(3). -u:

   - 只显示唯一行(即不重复的行)。

   - 示例:    

     uniq -u input_file  

(4). -f N:

   - 忽略每行开头的 N 个字段。

   - 示例:    

     uniq -f 1 input_file   

(5). -w N:

   - 比较时忽略每行的前 N 字符。

   - 示例:    

     uniq -w 3 input_file    

(6). -n N:

   - 指定忽略每行的前 N 列(适用于固定宽度的列)。

   - 示例:    

     uniq -n 2 input_file   

3、获取帮助

输入如下命令:

uniq –h

出现如下图所示的帮助信息:

三、主要功能

1. 识别并删除相邻重复行

   - uniq 默认会删除连续的重复行,只保留一个实例。

2. 保留重复行的第一个实例

   - 如果需要保留第一个重复行,uniq 会保留第一次出现的行,并删除后续的重复行。

3. 统计重复次数

   - 可以输出每一行及其重复次数。

4. 忽略指定列的比较

   - 可以指定忽略某些列来进行比较,这对于某些特定的文本处理非常有用。

四、示例

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

apple

banana

apple

cherry

apple

date

 1. 删除相邻重复行

sort input.txt | uniq > output.txt

输出结果(output.txt):

apple

banana

cherry

date

实际操作结果如下:

 2. 显示每一行及其重复次数

sort input.txt | uniq -c

输出结果:

1 banana

1 cherry

1 date

3 apple

实际操作结果如下:

 3. 只显示重复行

sort input.txt | uniq -d

输出结果:

apple

实际操作结果如下:

 4. 只显示唯一行

sort input.txt | uniq -u

输出结果:

banana

cherry

date

实际操作结果如下:

 5. 忽略每行开头的 1 个字段

假设每行由空格分隔的多个字段组成:

cat input.txt | uniq -f 1

 6. 比较时忽略每行的前 3 个字符

cat input.txt | uniq -w 3

 7. 忽略每行的前 2 列

假设每行由固定宽度的两列组成:

cat input.txt | uniq -n 2

五、实际应用场景

uniq 命令在很多场景下都非常有用,比如:

1、数据清洗

去除文本文件中的重复记录。

2、统计分析

统计文本文件中各条目的出现次数。

3、脚本开发

配合其他命令行工具(如 grep、sort、awk 等)进行文本处理。

六、其他

1、uniq 命令只能识别连续出现的重复行,因此通常与 sort 命令结合使用。

2、默认情况下,uniq 区分大小写。

3、使用 -c、-d、-D、-u 等选项时,可以根据需要选择性地显示重复行、不重复行或它们的计数。

uniq 是一个功能强大的命令行工具,用于处理文本文件中的重复行。通过灵活运用各种选项,可以实现多种文本处理任务。理解 uniq 的工作原理和使用方法,可以帮助技术人员在日常工作中更加高效地处理文本数据。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


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

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

相关文章

【Hot100】LeetCode—136. 只出现一次的数字

目录 1- 思路题目识别技巧 2- 实现⭐136. 只出现一次的数字——题解思路 原题链接:136. 只出现一次的数字 1- 思路 题目识别 识别1 :给定一个数组,里面元素均出现两次,只有一个数只出现一次。 技巧 一个数和 0 的异或是这个数…

前端网页代码编辑器 Monaco Editor

前端网页代码编辑器 Monaco Editor Monaco Editor Monaco Editor 是由 Microsoft 开发的一款基于 Web 技术的开源代码编辑器,它是 Visual Studio Code 编辑器的核心。Monaco Editor 可以嵌入到网页中,提供类似于 Visual Studio Code 的编辑体验。 官方…

华为SMU02B1管理模块WEB登录与账户密码信息

1、将电脑的IP地址与SMU02B1的IP地址配置在同一个网段中。例如,如果监控的IP地址为192.168.0.11,子网掩码为255.255.255.0,默认网关为192.168.0.1,则电脑的IP地址设置成192.168.0.12,子网掩码设置成255.255.255.0&…

基于微信小程序的垃圾分类(lw+演示+源码+运行)

摘 要 随着生态文明体制改革的不断推进,可持续发展的环保理念逐渐成为社会共识,而在推行环保措施的过程中却困难重重.针对生活废弃物肆意无序投放的问题,尽管目前各大城市相继推出垃圾分类强制性执行的政策法规,但因市民欠缺对垃圾种类的正确认识而导致垃圾分类的施行难度和成…

【Docker系列】环境准备-VirtualBox虚拟机安装

前言 最近一段时间研究了一下Docker容器方面的技术,发现容器技术还是蛮好玩的。但是自己手头上没啥Linux操作系统机器,于是就想到利用一些虚拟机软件工具,在自己的Windows操作系统上安装几个Linux操作系统环境。我这里给大家介绍的是一款常用…

【代码随想录训练营第42期 Day58打卡 - 图论Part8 - 拓扑排序

目录 一、拓扑排序介绍 定义 特点 实现方法(2种) 应用 二、题目与题解 题目:卡码网 117. 软件构建 题目链接 题解:拓扑排序 - Kahn算法(BFS) 三、小结 一、拓扑排序介绍 对于拓扑排序&#xff0c…

【传纸条 / NOIP / Google】

题目 代码&#xff08;还是我的好理解&#xff0c;(●◡●)&#xff09; #include <bits/stdc.h> using namespace std; const int N 55; int w[N][N]; int f[2*N][N][N]; int main() {int m, n;cin >> m >> n;for(int i 1; i < m; i){for(int j 1; j…

ASPCMS靶场漏洞复现

浏览器访问环境 1.进入后台管理 aspcms默认的后台登录地址为/admin_aspcms/index.asp 用户名&#xff1a;admin 密码&#xff1a;123456 2.点击扩展功能里面的幻灯片设置 3.在保存的时候抓包 抓包修改slideTextStatus参数为一句话木马 1%25><%25Eval(Request (chr(65…

【CSS】选择器(基本选择器、复合选择器、属性匹配选择器、结构伪类选择器、伪元素选择器)

选择器 引入方式基础选择器复合选择器属性匹配选择器结构伪类选择器伪元素选择器 引入方式 1&#xff1a;外联 <!-- css引入方式1&#xff1a;外联 外联与内嵌优先级相同&#xff0c;取决于加载顺序 --><link rel"stylesheet" href"./样式.css"…

基于SpringBoot+Vue的养老院管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

Spring Cloud常见面试题

1.请说说你用过Spring Cloud哪些组件&#xff1f;这些组件分别有什么作用&#xff1f; 1、注册中心&#xff1a;Eureka、Nacos、Zookeeper、Consul&#xff1b;&#xff08;服务注册&#xff09; 2、负载均衡&#xff1a;Ribbon、LoadBalancer&#xff1b;&#xff08;客户端的…

文件误删危机应对:数据恢复全解析

文件误删&#xff1a;数字化时代的隐形挑战 在数字化的浪潮中&#xff0c;文件已成为我们工作、学习和生活中不可或缺的一部分。它们记录着我们的思想、成果与回忆&#xff0c;是连接现实与虚拟世界的桥梁。然而&#xff0c;这份便捷与高效背后&#xff0c;却隐藏着文件误删这…

集群聊天服务器项目【C++】(三)muduo库的简单介绍

在上一讲中介绍了Json库的相关知识&#xff0c;本次接着介绍muduo库的相关内容&#xff0c;这些知识在本项目中都会使用到。 1.muduo库简介 muduo库顶层就是epoll&#xff08;IO复用技术&#xff09; Linux的pthread多线程&#xff0c;所以只能安装在Linux系统中。此外它依赖…

Transformer学习(4):位置编码 Positional Encoding

为什么需要位置编码 在自注意力编码中&#xff0c;所有 a a a的计算都并行同时执行得到对应的 b b b&#xff0c;可以并行就代表着 a a a之间是不存在先后顺序关系的&#xff0c;这存在问题。 在不使用位置编码时&#xff0c;将 a 2 a_2 a2​与 a 3 a_3 a3​的顺序打乱&#…

java项目之疫情下图书馆管理系统源码(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的疫情下图书馆管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息。 项目简介&#xff1a; 疫情下图书馆管理系…

实景三维赋能低空经济:探索天空之城的未来图景

在数字化转型的大潮中&#xff0c;低空经济作为新兴业态正逐渐崭露头角&#xff0c;它不仅拓宽了航空业的边界&#xff0c;也为智慧城市、应急救援、物流配送、旅游观光等领域带来了前所未有的发展机遇。而实景三维技术&#xff0c;作为地理信息与遥感领域的前沿科技&#xff0…

java环境配置 | 基础铺垫

cmd命令 dir : 罗列目录下所有的文件展示出来cd xx : 进入xx文件夹cd … 返回上一级cls : 清除屏幕内容exit : 退出命令提示窗口环境变量 就是存储某个应用路径的变量,通过这个变量可以快速访问到某个应用exe 为什么要配置环境变量? 我们想要在任意的目录下都可以打开指…

小琳AI课堂:o1系列模型

大家好&#xff0c;这里是小琳AI课堂&#xff01;今天我们一起来探索OpenAI最新发布的o1系列模型&#xff0c;这可是AI领域的一大突破哦&#xff01; OpenAI o1系列模型技术大揭秘 o1系列模型是基于强化学习&#xff08;RL&#xff09;训练的&#xff0c;包括o1-preview和o1-…

彩漩科技亮相企业出海峰会,展示智能办公新力量

近日&#xff0c;在北京市海淀区商务局的指导下&#xff0c;由中关村东升科技园联合创新企业科普联盟共同举办的企业出海峰会于北京成功举办。本次峰会以“出海新征程&#xff0c;企业新高度”为核心议题&#xff0c;深入探讨全球化背景下科技企业出海面临的机遇与挑战。通过汇…

IntelliJ IDE 插件开发 | (十二)自定义项目脚手架(上)

系列文章 本系列文章已收录到专栏&#xff0c;交流群号&#xff1a;689220994&#xff0c;也可点击链接加入。 前言 在开发创建一个新项目的时候&#xff0c;我们一般都会使用平台自带的脚手架&#xff0c;如下图所示&#xff1a; 或者是使用网页版&#xff1a; 尽管平台已经…