当前位置: 首页 > news >正文

Linux命令更新-sort 和 uniq 命令

简介


sortuniq 都是 Linux 系统中常用的文本处理命令。

  • sort 命令用于对文件内容进行排序。

  • uniq 命令用于去除文件中重复出现的行。

1. sort 命令

命令格式

sort [选项] [文件]
  • 选项

  • -n: 按照数字进行排序

  • -r: 反向排序

  • -c: 统计每个元素出现的次数

  • -t 分隔符: 指定分隔符,默认为空格

  • -k 列号: 指定排序列,从左到右从 1 开始计数

  • -u: 仅显示不重复的行

命令功能

sort 命令可以对文件内容进行排序,支持多种排序方式,包括:

  • 按数字排序

  • 按字符串排序

  • 按自定义列排序

  • 正序排序

  • 反序排序

命令用法

1. 按数字排序

sort numbers.txt

例如,将文件 numbers.txt 中的内容按数字从小到大排序:

10
2
5
4
3

2. 按字符串排序

sort words.txt

例如,将文件 words.txt 中的内容按字母顺序排序:

apple
banana
cherry
grape
orange

3. 按自定义列排序

sort -k 3 students.txt

例如,将文件 students.txt 中的内容按第三列(成绩)从高到低排序:

张三,15,90
李四,18,80
王五,17,70
赵六,16,60

4. 正序排序

默认情况下,sort 命令会对文件内容进行正序排序。

sort numbers.txt

5. 反向排序

sort -r numbers.txt

例如,将文件 numbers.txt 中的内容按数字从大到小排序:

10
5
4
3
2

6. 统计每个元素出现的次数

sort -c words.txt

例如,统计文件 words.txt 中每个单词出现的次数:

2 apple
1 banana
1 cherry
2 grape
1 orange

7. 指定分隔符

sort -t : students.txt

例如,将文件 students.txt 中的内容按第一列(姓名)排序,并使用冒号作为分隔符:

张三:15:90
李四:18:80
王五:17:70
赵六:16:60

8. 仅显示不重复的行

sort -u words.txt

例如,显示文件 words.txt 中不重复的单词:

apple
banana
cherry
grape
orange

2. uniq 命令

命令格式

uniq [选项] [文件]
  • 选项

  • -c: 统计每个元素出现的次数

  • -d: 显示重复的行

  • -u: 仅显示不重复的行

命令功能

uniq 命令用于去除文件中重复出现的行,支持多种操作,包括:

  • 仅显示不重复的行

  • 显示重复的行

  • 统计每个元素出现的次数

命令用法

1. 仅显示不重复的行

uniq words.txt

例如,显示文件 words.txt 中不重复的单词:

apple
banana
cherry
grape
orange

2. 显示重复的行

uniq -d words.txt

例如,显示文件 words.txt 中重复出现的单词:

apple
banana

3. 统计每个元素出现的次数

uniq -c words.txt

例如,统计文件 words.txt 中每个单词出现的次数:

2 apple
1 banana
1 cherry
2 grape
1 orange

运维案例

案例一:统计网站日志中的访问次数

假设您需要统计网站日志文件 /var/log/nginx/access.log 中每个 IP 地址的访问次数。

步骤:

  1. 提取 IP 地址:
cat /var/log/nginx/access.log | awk '{print $1}' > ips.txt
  1. 排序并去除重复的 IP 地址:
sort -u ips.txt > unique_ips.txt
  1. 统计每个 IP 地址的访问次数:
for ip in $(cat unique_ips.txt); docount=$(grep -c "$ip" /var/log/nginx/access.log)echo "$ip $count"
done > ip_counts.txt

结果:

192.168.1.10 100
192.168.1.11 50
192.168.1.12 20

案例二:比较两个文件的差异并忽略空白行

假设您需要比较两个文件 /file1.txt/file2.txt 的差异,并忽略空白行。

步骤:

  1. 删除两个文件中的空白行:
sed -i '/^ *$/d' file1.txt
sed -i '/^ *$/d' file2.txt
  1. 比较两个文件并忽略重复行:
comm -3 file1.txt file2.txt | grep -v '^$'

结果:

+ line1
- line2

案例三:从多个文件中提取唯一内容

假设您需要从多个文件(file1.txtfile2.txtfile3.txt)中提取唯一内容。

步骤:

  1. 将多个文件的内容合并到一个文件中:
cat file1.txt file2.txt file3.txt > all_lines.txt
  1. 排序并去除重复行:
sort -u all_lines.txt > unique_lines.txt

结果:

line1
line2
line3

注意:

  • 本文档仅介绍了 sortuniq 命令的基本使用方法和常见运维案例,并未涵盖所有功能和参数。

  • 在使用 sortuniq 命令进行实际操作时,请注意备份文件,以免造成数据丢失。

  • 可以根据实际需要组合使用 sortuniq 命令,实现更复杂的功能。

希望这份文档能够帮助您更好地了解和使用 sortuniq 命令。

相关文章:

Linux命令更新-sort 和 uniq 命令

简介 sort 和 uniq 都是 Linux 系统中常用的文本处理命令。 sort 命令用于对文件内容进行排序。 uniq 命令用于去除文件中重复出现的行。 1. sort 命令 命令格式 sort [选项] [文件]选项: -n: 按照数字进行排序 -r: 反向排序 -c: 统计每个元素出现的次数 -…...

【密码学】密码学数学基础:剩余系

不得不啃的密码学数学基础之剩余系是个啥?数学里面有好多的定义都有前置的数学概念,要想弄懂剩余系还得先说说“同余”。 一、同余 那么“同余”有是个什么呢?在谈论“同余”之前,我们先圈定个讨论的范围。接下来讨论的都是整数集…...

量化发展历史简述,QMT/PTrade+恒生UFT、LDP极速柜台适用哪些情形?

量化发展简述 1.2004年萌发阶段:策略局限在量化择时,量化选股等; 光大保德信量化核 心基金 上投摩根阿尔法基 金 金融危机,海归引入。 2.2010量化元年:中低频交易为主,主要依靠套利、对冲、多因子策略等…...

linux服务器anaconda安装及环境变量配置

1.下载anaconda Index of /可以在此链接中下载所需要的anaconda安装文件。使用一下的命令进行下载: wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh2.安装anaconda 进入到下载的目录下,使用下面的的命令进行安装&#…...

如何在 Objective-C 中实现多态性,并且它与其他面向对象编程语言的多态性实现有何差异?

在Objective-C中,多态性可以通过使用父类的指针来调用子类的方法来实现。具体来说,可以定义一个父类的指针,然后将子类的实例赋值给这个指针。这样,即使使用父类的指针来调用方法,实际上会调用子类的方法。 需要注意的…...

阿里云OSS简单应用

前提条件 购买OSS标准存储包之后,就可以使用OSS的各种服务了 1 获取自己的OSS Endpoint OSS访问域名和数据中心_对象存储(OSS)-阿里云帮助中心 在官方的表格上找到自己OSS标准存储包对应的外网Endpoint即可 2 创建自己的阿里云Access Key ID 和 Access Key Secret …...

cleanshot Mac 上的截图工具

笔者闲来无事,最近在找一些mac上好用的工具其中一款就是cleanShot。为什么不用原有的mac自带的呢。因为相对来说编辑功能不算全面,不支持长截图。那有没有一款软件支持关于截图的好用工具呢。 所以笔者找了这款。安装包是直接安装就可使用的。请大家点赞…...

JMeter进行HTTP接口测试的技术要点

参数化 用户定义的变量 用的时候 ${名字} 用户参数 在参数列表中传递 并且也是${} csv数据文件设置 false 不忽略首行 要首行 从第一行读取 true 忽略首行 从第二行开始 请求时的参数设置: 这里的名称是看其接口需要的请求参数的名称 这里的变量名称就是为csv里面…...

基于智能算法的品牌视觉识别系统优化研究

基于智能算法的品牌视觉识别系统优化研究 一、引言 随着人工智能技术的快速发展,智能算法在各个领域的应用日益广泛。在品牌视觉识别系统中,智能算法同样发挥着重要作用。品牌视觉识别系统(Visual Identity System,简称VIS)是企业通过统一的视觉符号系统,将企业的理念、…...

递归锁与普通锁的区别

什么是锁? 在多线程编程中,锁是一种机制,用来确保某些代码块在同一时间只能被一个线程执行。想象一下,你和你的朋友们都想同时进入一个只有一把椅子的房间。为了避免混乱,你们需要一个锁来控制进入的顺序。 普通锁&a…...

FPGA上板项目(二)——PLL测试

目录 实验内容实验原理实验步骤实验结果 实验内容 将差分时钟信号转化为 192MHz 时钟信号作为输出。 实验原理 PLL,即锁相环,一种反馈控制电路,具有时钟倍频、分频、相位偏移和可编程占空比的功能。 实验步骤 添加 clocking wizard IP核&…...

C语言 | Leecode C语言题解之第229题多数元素II

题目: 题解: /*** Note: The returned array must be malloced, assume caller calls free().*//*假定 num1,num2 为出现次数大于 nums.length / 3 的两个数。(最多出现两个)遍历 nums, 若出现 num1、num2…...

mybatis-plus映射mysql的json类型的字段

一、对json里面内容建立实体类 Data AllArgsConstructor NoArgsConstructor public class RouteMetaEntity {private String title;private Boolean affix;private Boolean isAlwaysShow; }二、主类做映射 TableField(typeHandler JacksonTypeHandler.class)private RouteMe…...

20240716 Codeforces题目

A - Split the Multiset 题目 多集是一组数字,其中可以有相等的元素,数字的顺序无关紧要。例如, { 2 , 2 , 4 } \{2,2,4\} {2,2,4} 是一个multiset。 你有一个多集 S S S 。最初,multiset只包含一个正整数 n n n 。即 S {…...

29.【C语言】自定义函数

1、自定义详解 *提示&#xff1a;先看第12,19篇 例&#xff1a;写一个程序交换两个变量的值 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void swap(int x, int y) {int z 0;z x;x y;y z; } int main() {int a 10;int b 20;swap(a, b);printf("%d…...

C++面向对象编程 基础篇(3)函数基础

3、函数基础 3.1 函数默认参数 在C中&#xff0c;函数的形参列表中的形参是可以有默认值的 注意事项&#xff1a; 如果某个位置已经有了默认参数&#xff0c;往后的形参都要有默认参数 函数声明和函数实现只能有一个有默认参数 示例&#xff1a; //如果自己传入参数&…...

excel有条件提取单元格特定文本(筛选纯文字的单元格或含有数字的单元格、单元格提取不同的文本长度)

实际工作背景 需要对导出的银行流水中的数十个村以及对应的村小组进行分组统计&#xff0c;但是初始的表格中村和小组是混在一起的&#xff0c;如下图所示&#xff1a; 目的&#xff1a;将大树村和大树村小组名称分别筛选出来 1.观察发现&#xff0c;大树村小组的单元格第4…...

HBase 在统一内容平台业务的优化实践

作者&#xff1a;来自 vivo 互联网服务器团队-Leng Jianyu、Huang Haitao HBase是一款开源高可靠性、扩展性、高性能和灵活性的分布式非关系型数据库&#xff0c;本文围绕数据库选型以及使用HBase的痛点展开&#xff0c;从四个方面对HBase的使用进行优化&#xff0c;取得了一些…...

【异常解决】Unable to start embedded Tomcat Nacos 启动报错

Unable to start embedded Tomcat Nacos 启动报错解决方案 一、背景描述二、原因分析三、解决方案 一、背景描述 Windows 本地启动 Nacos&#xff08;2.2.0&#xff09; 服务&#xff0c;控制台报错 Unable to start embedded Tomcat。 报错信息&#xff1a;Unable to start …...

【Java面向对象】对象和类

文章目录 1.为对象定义类2.定义类2.1 主类 3.类与对象3.1 构造方法3.2 通过引用变量访问对象3.3 访问对象的数据和方法3.4 引用数据域和 null 值3.5 基本类型变量和引用类型变量的区别 4.常见的类 1.为对象定义类 面向对象程序设计(OOP) 就是使用对象进行程序设计。对象 (obje…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...