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

使用 sort 进行文本文件处理

sort 使用经验笔记

一、简介

sort 是一个命令行工具,用于对文本文件中的行进行排序。它广泛应用于 Unix/Linux 系统中,可以用来对文件的内容进行简单的排序操作,也可以与其他命令结合使用来完成更复杂的任务。

二、基本用法
  1. 排序文件:

    sort file.txt > sorted.txt
    

    这将对 file.txt 中的行进行排序,并将结果保存到 sorted.txt 文件中。

  2. 忽略大小写排序:

    sort -f file.txt > sorted.txt
    

    -f 选项使 sort 忽略大小写,即以不区分大小写的方式进行排序。

  3. 按照特定列排序:

    sort -k2 file.txt > sorted.txt
    

    -k2 指定按照第二列进行排序。

  4. 使用自定义分隔符:

    sort -t: -k2 file.txt > sorted.txt
    

    -t: 设置字段分隔符为冒号,-k2 表示按照第二列排序。

  5. 反向排序:

    sort -r file.txt > sorted.txt
    

    -r 选项使 sort 以逆序方式排序。

  6. 唯一化排序:

    sort -u file.txt > unique.txt
    

    -u 选项使 sort 删除重复行,并保留唯一的行。

  7. 合并多个文件:

    sort file1.txt file2.txt > merged_sorted.txt
    

    这将合并并排序 file1.txtfile2.txt 的内容。

  8. 排序数字:

    sort -n file.txt > sorted.txt
    

    -n 选项使 sort 按照数字进行排序。

  9. 排序并计数:

    sort file.txt | uniq -c
    

    这先对文件进行排序,然后使用 uniq -c 来统计每一行出现的次数。

三、高级用法
  1. 多列排序:

    sort -k1,1 -k2,2 file.txt > sorted.txt
    

    -k1,1 表示首先按照第一列排序,-k2,2 表示在第一列相同的情况下再按照第二列排序。

  2. 使用自定义排序规则:

    sort --dictionary-order file.txt > sorted.txt
    

    --dictionary-order 选项使 sort 按照字典顺序排序。

  3. 排序并输出到标准输出:

    sort file.txt
    

    直接在命令行中显示排序结果。

  4. 使用自定义排序文件:

    sort -C file.txt
    

    -C 选项指定一个排序文件,用于定义排序顺序。

  5. 使用自定义排序算法:

    sort --parallel=4 file.txt > sorted.txt
    

    --parallel=4 选项指定使用四个处理器核心进行排序,适用于大型文件。

四、应用场景
  1. 数据清洗:

    • 使用 sort 清洗数据,去除重复项或按照特定顺序排列数据。
  2. 数据汇总:

    • 结合 sortuniq 来汇总数据。
  3. 数据分析:

    • 在数据分析流程中使用 sort 来准备数据,便于进一步处理。
  4. 文件比较:

    • 使用 sort 对两个文件进行排序,然后使用 diff 来比较它们。
五、小结

sort 是一个非常有用的工具,可以用来对文本文件中的行进行排序。它不仅可以直接用于简单的排序任务,还可以与其他命令(如 uniq, grep, awk 等)结合使用来完成更复杂的文本处理任务。通过掌握 sort 的基本和高级用法,你可以更高效地处理和分析数据。

相关文章:

使用 sort 进行文本文件处理

sort 使用经验笔记 一、简介 sort 是一个命令行工具,用于对文本文件中的行进行排序。它广泛应用于 Unix/Linux 系统中,可以用来对文件的内容进行简单的排序操作,也可以与其他命令结合使用来完成更复杂的任务。 二、基本用法 排序文件: sor…...

HarmonyOS笔记4:从云数据库获取数据

移动应用获取数据的方式主要有: 1.从网络中获取数据接口API。 2.从华为云数据库获取云数据库的资源。 3.从移动终端直接获取本地的数据 在HarmonyOS笔记3中已经完成了方式一从网络中获取数据接口API的方式。在本篇笔记中,将讨论从云数据库中获取数据。 因…...

QT5生成独立运行的exe文件

目录 1 生成独立运行的exe文件1.1 设置工程Release版本可执行文件存储路径1.2 将工程编译成Release版本 2 使用QT5自带的windeployqt拷贝软件运行依赖项3 将程序打包成一个独立的可执行软件exe4 解决QT5 This application failed to start because no Qt platform plugin could…...

LabVIEW光纤水听器闭环系统

开发了一种利用LabVIEW软件开发的干涉型光纤水听器闭环工作点控制系统。该系统通过调节光源频率和非平衡干涉仪的光程差,实现了工作点的精确控制,从而提高系统的稳定性和检测精度,避免了使用压电陶瓷,使操作更加简便。 项目背景 …...

Shell——流程控制语句(if、case、for、while等)

在 Shell 编程中,流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 if、case、for、while 等,它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构: 1. if 语句 if 语句用于条件判断,执行符合条件的…...

【redis的大key问题】

在使用 Redis 的过程中,如果未能及时发现并处理 Big keys(下文称为“大Key”),可能会导致服务性能下降、用户体验变差,甚至引发大面积故障。 本文将介绍大Key产生的原因、其可能引发的问题及如何快速找出大Key并将其优…...

HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输

HighPoint Technologies推出了一款全新的SSD7749M2 RAID卡,能够在标准的桌面工作站中安装多达16个M.2 SSD,实现高达128TB的闪存存储。该卡通过PCIe Gen4 x16接口提供高达28 GB/s的顺序读写性能。这些令人瞩目的性能规格伴随着高昂的价格标签。 #### 技术…...

ARM 裸机与 Linux 驱动对比及 Linux 内核入门

目录 ARM裸机代码和驱动的区别 Linux系统组成 内核五大功能 设备驱动分类 内核类型 驱动模块 驱动模块示例 Makefile配置 命令 编码辅助工具 内核中的打印函数 printk 函数 修改打印级别 ​编辑 打印级别含义 驱动多文件编译 示例 模块传递参数 命令行传递参数…...

0101DNS TCP fallback on UDP query timeout disabled-redission-中间件

文章目录 1.问题描述2.临时解决方案 结语 1.问题描述 Springcloud 项目,微服务模块使用redission,启动报错 DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.相关软件版本如下 软件版本描述springboot2.7.18spr…...

位运算

x1010 原码&#xff1a;000...1010 &#xff08;一共32位&#xff09; 反码&#xff1a;111...0101 &#xff08;~x&#xff09; 补码&#xff1a;111...0110 &#xff08;反码1&#xff09;&#xff08;-x&#xff09; 1、n 的二进制表示中第 k 位是几 #include<iost…...

MemFire Cloud是否真的可以取代后端

近年来&#xff0c;随着前端技术的迅速发展&#xff0c;前端工程师们越来越多地开始思考一个问题&#xff1a;“我还能不能不依赖后端&#xff1f;” 这种想法并非空穴来风&#xff0c;尤其是随着像MemFire Cloud这样的工具出现&#xff0c;它不仅能让开发者在没有后端的情况下…...

数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆

文章目录 1. 自上而下的上滤&#xff1a;算法2. 自上而下的上滤&#xff1a;效率3. 自下而上的下滤&#xff1a;算法4. 自下而上的下滤&#xff1a;实例5. 自下而上的下滤&#xff1a;效率 1. 自上而下的上滤&#xff1a;算法 在介绍过完全二叉堆标准的静态和动态操作接口之后…...

Java | Leetcode Java题解之第344题反转字符串

题目&#xff1a; 题解&#xff1a; class Solution {public void reverseString(char[] s) {int n s.length;for (int left 0, right n - 1; left < right; left, --right) {char tmp s[left];s[left] s[right];s[right] tmp;}} }...

定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新

摘要:随着科技的飞速发展和消费者需求的日益多元化&#xff0c;传统商业模式正经历着前所未有的变革。在数字化转型的大潮中&#xff0c;定制开发AI智能名片O2O商城小程序作为一种新兴的商业模式&#xff0c;凭借其独特的个性化定制能力、高效的线上线下融合&#xff08;O2O&am…...

Spring MVC Controller返回json日期格式配置失效的解决办法

如题&#xff0c;Spring MVC 4.3.0版本&#xff0c;配置jackson读写json。Controller层方法返回值对象包含java.util.Date类型的属性&#xff0c;并且在applicationContext.xml中配置了jackson的日期格式&#xff1a; <mvc:annotation-driven><mvc:message-converters…...

3.Default Constructor的构造操作

目录 1. 问题引入 2. 4种implicitly声明的default constructor 1. 问题引入 “default constructors......在需要的时候被编译产生出来”。关键词是“在需要的时候”&#xff0c;被谁需要&#xff0c;做什么事情&#xff1f;看看下面的代码&#xff0c;然后梳理下思路。 cl…...

CSS的:current伪类:精准定位当前活动元素

CSS&#xff08;层叠样式表&#xff09;是控制网页样式的核心语言。随着CSS4的提出&#xff0c;一系列新的选择器被引入&#xff0c;其中:current伪类便是这些新特性之一。:current伪类允许开发者选择当前处于活动状态的元素&#xff0c;这在创建动态和交互性网页时非常有用。本…...

搭建个人网站

一 个人搭建网站需要进行的操作 详细步骤&#xff1a; 1 网站目标&#xff1a;搭建在线查看法拍房拍卖价格的预测模型&#xff0c;输出预测结果 2 实际功能&#xff1a;在线爬取 阿里法拍网站的信息 3 根据实时模型建模预测法拍价格和成交概率 要搭建一个能够在线查看法拍房拍卖…...

机器学习课程学习周报八

机器学习课程学习周报八 文章目录 机器学习课程学习周报八摘要Abstract一、机器学习部分1.1 self-attention的计算量1.2 人类理解代替自注意力计算1.2.1 Local Attention/Truncated Attention1.2.2 Stride Attention1.2.3 Global Attention1.2.4 聚类Query和Key 1.3 自动选择自…...

福泰轴承股份有限公司进销存系统pf

TOC springboot413福泰轴承股份有限公司进销存系统pf 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#…...

紧急通知:地质项目交付周期压缩迫在眉睫——用NotebookLM替代传统笔记整理,单项目节省22.6工时(附审计级日志)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM地质学研究辅助的范式变革 NotebookLM 作为 Google 推出的基于用户上传文档进行语义理解与推理的 AI 工具&#xff0c;正悄然重塑地质学研究的知识处理流程。传统地质工作依赖大量野外笔记、…...

JSON格式强制输出失败,深度解析DeepSeek-R1/V3模型token级响应机制与schema约束绕过方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;JSON格式强制输出失败的现象与根本归因 典型失败现象 当后端服务&#xff08;如 Go/Node.js/Python&#xff09;尝试通过 HTTP 响应强制输出 JSON 数据时&#xff0c;常出现空响应、500 错误、或返回 …...

当比你资历浅的人成了你的上级,技术人的心态调整指南

阶段一&#xff1a;缺陷定位——从审视“测试用例”开始当问题出现时&#xff0c;优秀的测试工程师不会立刻指责开发&#xff0c;而是先检查自己的测试环境、数据和步骤。面对年轻领导的晋升&#xff0c;我们同样需要运用这套严谨的思维&#xff0c;进行一次彻底的“根因分析”…...

【限时开放】Midjourney未来主义风格权威认证路径:完成这5个里程碑任务,获取由Adobe+MJ Labs联合签发的Futurism Prompt Architect证书

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;【限时开放】Midjourney未来主义风格权威认证路径&#xff1a;完成这5个里程碑任务&#xff0c;获取由AdobeMJ Labs联合签发的Futurism Prompt Architect证书 什么是未来主义Prompt架构师认证&#xf…...

实时语音AI对话应用开发:从WebRTC到LLM集成的全栈实践

1. 项目概述&#xff1a;实时语音对话的AI应用实践最近在GitHub上看到一个挺有意思的项目&#xff0c;叫proj-airi/webai-example-realtime-voice-chat。光看名字&#xff0c;就能猜到个大概&#xff1a;这是一个基于Web的、利用AI技术实现的实时语音聊天示例。作为一个在音视频…...

告别 AI 失忆!基于 Harness 记忆模型,解密 SpreadContext 多实例同步引擎

在日常与企业级客户及前端开发者的交流中&#xff0c;我经常听到这样的痛点&#xff1a;“我们成功接入了大模型&#xff0c;但它总是‘睁眼瞎’。用户在表格里改了数据&#xff0c;AI 不知道&#xff1b;AI 修改了单元格&#xff0c;UI 没有同步。聊了几轮之后&#xff0c;大模…...

API管理平台能力与数据盘点

API管理平台是现代企业IT架构中的核心组件&#xff0c;承担着接口设计、发布、运维、安全管控及生态开放等关键职责。不同平台在功能深度、性能指标和行业实践上各有积累。本文基于公开资料&#xff0c;对五款API管理平台的核心能力与关键数据进行客观梳理&#xff0c;以表格与…...

JAVA练习:单一职责原则重构

问题背景原始Login类同时承担界面展示、登录校验、数据库连接、用户查询、程序入口多重职责&#xff0c;功能高度耦合&#xff0c;违反单一职责原则&#xff08;一个类只负责一类功能&#xff09;&#xff0c;修改某部分功能易影响其他模块。重构思路按职责拆分&#xff0c;分为…...

aelf区块链浏览器开发实战:从核心技能到定制化构建

1. 项目概述&#xff1a;一个区块链浏览器背后的技能集如果你在区块链领域&#xff0c;特别是公链开发或生态应用构建中工作过&#xff0c;那么“区块链浏览器”对你来说一定不陌生。它就像是区块链世界的“搜索引擎地图”&#xff0c;让我们能直观地查看链上发生的每一笔交易、…...

当AI的键值记忆遇上大脑:原来我们和AI共享同一套记忆逻辑

导语在日常经验中&#xff0c;我们常把“遗忘”理解为信息的流失&#xff1a;时间久了&#xff0c;记忆就会慢慢消失&#xff1b;学习新知识&#xff0c;也可能覆盖旧内容。然而&#xff0c;从短视频推荐到大语言模型&#xff0c;再到人类被线索唤醒的记忆体验&#xff0c;这些…...