当前位置: 首页 > 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;这个时代让大家的生活不仅变得更加地便利化&#…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

2025.6.9总结(利与弊)

凡事都有两面性。在大厂上班也不例外。今天找开发定位问题&#xff0c;从一个接口人不断溯源到另一个 接口人。有时候&#xff0c;不知道是谁的责任填。将工作内容分的很细&#xff0c;每个人负责其中的一小块。我清楚的意识到&#xff0c;自己就是个可以随时替换的螺丝钉&…...

高抗扰度汽车光耦合器的特性

晶台光电推出的125℃光耦合器系列产品&#xff08;包括KL357NU、KL3H7U和KL817U&#xff09;&#xff0c;专为高温环境下的汽车应用设计&#xff0c;具备以下核心优势和技术特点&#xff1a; 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计&#xff0c;确保在…...