使用“sort”命令按多列对 CSV 文件进行排序

2024-03-16

我有一个类似 CSV 的文件,我想按列优先级对其进行排序,例如SQL 中的“ORDER BY” https://dev.mysql.com/doc/refman/8.0/en/sorting-rows.html。例如,给定以下行,

3;1;2
1;3;2
1;2;3
2;3;1
2;1;3
3;2;1

如果“ORDER BY”是column2, column1, column3,结果将是:

2;1;3
3;1;2
1;2;3
3;2;1
1;3;2
2;3;1

我想知道如何使用获得相同的结果sortUnix 上的命令。


您需要使用两个选项sort命令:

  • --field-separator (or -t)
  • --key=<start,end> (or -k),指定排序键,即排序依据的列范围(从开始索引到结束索引)。由于您想要对 3 列进行排序,因此您需要指定-k3次,对于列2,2, 1,1, and 3,3.

把这一切放在一起,

sort -t ';' -k 2,2 -k 1,1 -k 3,3

注意sort无法处理字段包含分隔符的情况,即使它被转义或引用。

另请注意:这是一个老问题,属于 UNIX.SE,并且是那里也问了 https://unix.stackexchange.com/questions/52762/trying-to-sort-on-two-fields-second-then-first一年后。


旧答案:取决于您的系统版本sort,以下也可能有效:

sort --field-separator=';' --key=2,1,3

或者,您可能会得到“字段规范中的杂散字符”。

根据排序手册 https://man7.org/linux/man-pages/man1/sort.1.html,如果不指定排序键的结束列,则默认为行尾。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“sort”命令按多列对 CSV 文件进行排序 的相关文章

  • 处理CSV数据时如何忽略第一行数据?

    我要求 Python 打印 CSV 数据列中的最小数字 但顶行是列号 并且我不希望 Python 考虑顶行 如何确保 Python 忽略第一行 这是到目前为止的代码 import csv with open all16 csv rb as
  • 如何使用 netcat 发送文件并保持连接?

    我发出命令 netcat serveraddress myport lt MY FILE 问题是 一旦文件发送完毕 netcat 就会发送一条消息来关闭连接 发送该文件后 我需要从控制台写入消息 我记得对标准输入做了一些事情 是这样的吗 n
  • 为什么符号链接的权限默认为所有许可?

    当我使用创建硬链接时ln ln testfile txt testfile2 txt 文件硬链接 通过 inode 表中两个别名的相同 inode 编号进行确认ls li 对硬链接文件具有与原始名称文件相同的初始权限 1222285 rw
  • Python带有负数的排序列表[重复]

    这个问题在这里已经有答案了 为了尝试通过练习来学习Python 我正在尝试使用Python来实现和测试快速排序算法 实现本身并不困难 但是排序的结果有点令人费解 当我对列表进行排序时 35 1 2 7 8 3 4 20 6 53 结果给了我
  • fputcsv 和记事本

    我使用 fputcsv 生成 csv 文件 它工作得很好 但是当我在记事本 Windows 中查看 csv 文件时 没有新行 所有行都在 1 行中 并且在应该换行的地方有一个正方形 损坏的字符 例如 Mac 上的其他编辑器可以正确显示带有中
  • 如果文件没有行尾字符,则 wc -l 不计算文件的最后一个

    我需要计算 unix 文件的所有行数 该文件有 3 行 但是wc l仅给出 2 个计数 我知道它不计算最后一行 因为它没有行尾字符 任何人都可以告诉我如何计算这一行吗 grep c返回匹配行的数量 只需使用一个空字符串 作为您的匹配表达式
  • 如何同时正确使用管道和信号?

    我有 2 个孩子 我想将信号从孩子发送到父母 并将答案 随机数 为什么 为什么不 命名管道从父母发送到每个孩子 我有这个代码 include
  • 如何使用 PowerShell 将多个文本文件的列合并到一个 csv 文件中?

    我有多个测量文件 每个文件包含一列数字数据 Update 该脚本应该适用于可变数量的测量文件 数据1 dat 1 0 2 0 3 0 数据2 dat 10 0 20 0 30 0 数据N dat 1 1 1 如何使用以下命令将这些数据文件合
  • 如何在字符串中的某个字符之后按字母顺序对 php 数组进行排序

    我有两个 php 数组 对于每个数组都有一个不同的排序问题 1 首先包含域列表 values 0 absd com values 1 bfhgj org values 2 sdfgh net values 3 sdff com values
  • 如何在休眠中按条件对列表进行排序

    我是 Spring3 和 Hibernate 的新手 以下代码效果很好 但我试图找到一种方法让我的列表按日期字段排序返回 有人可以告诉我如何向此代码添加排序吗 To get list of all articles SuppressWarn
  • CSV 提供的数据源第一列中存在奇数字符

    我有一个 CSV 文件 已添加到 Visual Studio 单元测试项目中 它有七列 如下所示 assessmentitemid reviewer1 reviewer2 reviewer3 reviewer4 reviewer5 revi
  • 如何在 PHP 中对数组和数据进行排序?

    这个问题旨在作为有关 PHP 中数组排序问题的参考 人们很容易认为您的特定案例是独特的并且值得提出新问题 但大多数实际上只是此页面上的解决方案之一的微小变化 如果您的问题因与此问题重复而被关闭 请仅在您能解释为什么它与以下所有问题显着不同的
  • C++并行std::sort用于浮点值

    我有一个包含数百万个浮点值的大文件 我可以使用轻松对它们进行排序std sort通过将文件读入vector现在 例如 std vector
  • 字符串插值搜索

    对于那些不熟悉插值搜索的人来说 这是一种在排序数组中搜索值的方法 可能比二分搜索更快 您查看第一个和最后一个元素 并 假设数组的内容均匀分布 线性插值以预测位置 例如 我们有一个长度为 100 的数组 其中 array 0 0 和 arra
  • .bat 文件将文件排序到文件夹中

    对于我的图片集 我希望文件夹中的所有图片按日期自动分类到文件夹中 幸运的是 这些文件已经以时间戳命名 2012 07 15 12 21 06 jpg 2012 07 15 12 21 26 jpg 2012 07 16 12 12 50 j
  • 使用 fgetcsv 循环遍历 csv

    我有一个包含 3 列的 csv 文件 电子邮件地址 名 and 姓 我已经到了可以使用以下代码打印数组的阶段 这会打印数组 因此每个字段都在一行中 我希望它打印的只是该行第一列中的值 这是如何完成的 关于 fgetcsv 的文档对我 相对初
  • 类似 jq 中的 sql join

    我有以下 json id 1 type folder title folder 1 id 2 type folder title folder 2 id 3 type item title item 1 folder 1 id 4 type
  • 有谁知道一种更快的方法来执行 String.Split() 吗?

    我正在读取 CSV 文件的每一行 并且需要获取每一列中的各个值 所以现在我只是使用 values line Split delimiter where line是保存由分隔符分隔的值的字符串 衡量我的表现ReadNextRow我注意到它花费
  • Highcharts 对堆积条形图进行排序

    我没有看到任何与我在 Highcharts 中遇到的确切场景相匹配的解决方案 因此我将我的发现发布在这里 我在 Highcharts 中有一个堆积条形图 需要按值从大到小对条形图进行排序并维护它们的类别关系 通常 首选解决方案是在将数据发送
  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在

随机推荐

  • 如何使用 VBA 在众多文本 .log 文件之一中查找特定字符串?

    这是我迄今为止查找文件夹中所有日志文件的代码 但我需要能够在每个文件中找到特定的字符串 如果在一个文件中找到它 则停止查找并退出循环并报告它所在的文件名 打开文件和搜索文件的方法似乎有很多 我不知道哪种方法最好 而且我通常不使用 VBA 但
  • 正向lookbehind后跟逗号分隔列表

    我正在寻找是否有一种方法可以在积极的向后查找之后为每个逗号分隔的列表获取匹配组 例如 summertime swimming running tanning 正则表达式 到目前为止 lt summertime s Returns swimm
  • libVLCSharp 无法创建 MediaList

    我正在玩 libVLCSharp 发现了一个有线行为 实际上 我创建媒体并使用 MediaPlayer 播放它没有任何问题 但是 当我尝试从 MediaList 创建媒体时 它会中断并显示以下消息 无法在本机端执行实例化 确保你 在您的系统
  • WIF 中的主动和被动联合

    我试图了解 WIF 中主动联合和被动联合之间的区别 如果依赖方 RP 是 WCF 服务而不是 ASP NET 应用程序 则似乎可以使用主动联合 如果 RP 是 ASP NET 应用程序 则可以使用被动联合 这准确吗 因此 在 ASP NET
  • Django 中不同应用程序的不同数据库[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我的 Django 站点中有多个应用
  • 组织 Javascript 库和 CSS 文件夹结构的最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何在 Web 应用程序中组织 js 和 css 文件夹 我当前的项目结构是这样的 root assets js lib css img ind
  • Apache Commons JCI 重新加载类加载器

    有人有使用 Apache Commons JCI API 的 ReloadingClassLoader 的经验吗 唯一的使用示例可以在以下页面中找到 http commons apache org jci usage html http c
  • 如何在 UIWebview 中保存本地加载的 HTML 文件

    我正在使用 UIWebView 编写一个富文本编辑器 为此 我使用了一个模板文件作为启动器 然后 当用户完成编辑但尚未发布时 我想将当前内容保存到备份 html 文件中 以防应用程序损坏 我怎么做 给你 伙计 NSFileHandle fi
  • 有没有办法阻止 HTML access key="" 被激活?

    I tried preventDefault 但我还没有成功 我缺少什么吗 如果可能的话 我会尝试全局禁用它 例如在window 似乎没有办法阻止事件触发 唯一的选择似乎是在您不希望它们工作时暂时删除 accesskey 属性 就是这样jQ
  • csproj 文件中 元素的用途是什么

    当我编辑 Web 应用程序项目时 Visual Studio 2017 15 3 1 添加
  • Angular 4 setTimeout() 具有可变延迟和等待

    我有一个事件列表timestamp 我想要的是根据timestamp 添加延迟 delay timestamp t 1 timstamp t 我知道这不太适合setTimeout 但是有一个解决方法 如果超时是恒定的 但在我的情况下不是 是
  • 创建 Openstreetmap 提取的 mbtiles 文件的最简单方法?

    我正在创建一个使用在线和离线地图的 iPhone 旅行应用程序 对于离线地图 我希望允许用户下载他们感兴趣的区域 例如伦敦 的 mbtiles 文件 该地图应包含已在 OpenStreetmap 中找到的道路等信息 我知道以下网站http
  • pandas groupby 根据条件替换

    我有一个数据集结构如下 index country city Data 0 AU Sydney 23 1 AU Sydney 45 2 AU Unknown 2 3 CA Toronto 56 4 CA Toronto 2 5 CA Ott
  • Flutter:升级Play商店版本号

    我已经使用 flutter 在 Play 商店上发布了一个应用程序 现在我想上传该应用程序的新版本 我正在尝试更改版本代码 flutter 构建 apk build name 1 0 2 build number 3 或像这样更改 loca
  • 如何在 Java 中检查文件权限(独立于操作系统)

    我有以下代码片段 public class ExampleClass public static void main String args throws FileNotFoundException String filePath args
  • 加载 word2vec 时出现 UnicodeDecodeError 错误

    详细描述 我开始使用词嵌入 并发现了大量有关它的信息 到目前为止 我知道我可以训练自己的词向量或使用以前训练过的词向量 例如 Google 或 Wikipedia 的词向量 这些向量可用于英语 但对我来说没有用 因为我正在处理以下语言中的文
  • WSO2 Identity Server 5.1.0 未在 SAML 响应中返回用户声明

    在尝试新版本的 WSO2 Identity Server 5 1 0 时 我在返回 SAML 响应中的声明时遇到问题 虽然这在 WSO2 IS 5 0 0 SP1 中有效 我已经映射了所需的声明并将它们添加到我的 SP 此外我还配置了 SP
  • 使用 go 处理文件上传

    我最近才开始玩围棋 所以我还是个菜鸟 如果我犯了太多错误 抱歉 我已经尝试解决这个问题很长时间了 但我只是不明白发生了什么 在我的 main go 文件中 我有一个主要函数 func main http HandleFunc handler
  • 使用 FactoryGirl 时不断收到 record_invalid

    很多时候 当我在规范中使用 FactoryGirl 时 我不断收到如下错误 Failure Error f FactoryGirl build my model ActiveRecord RecordInvalid translation
  • 使用“sort”命令按多列对 CSV 文件进行排序

    我有一个类似 CSV 的文件 我想按列优先级对其进行排序 例如SQL 中的 ORDER BY https dev mysql com doc refman 8 0 en sorting rows html 例如 给定以下行 3 1 2 1