bash - 如何对 CSV 文件中的多列进行排序
问题描述
我有以下格式的文件。我需要先按最大代码排序,然后按最大值列排序。
colour,letter,code,value
red,r,016,949.8
red,r,015,603.9
red,r,014,348.4
blue,b,016,362.29
blue,b,015,460.2
blue,b,014,9850.9
output:
red,r,016,949.8
blue,b,016,362.29
red,r,015,603.9
blue,b,015,460.2
blue,b,014,9850.9
red,r,014,348.4
我的实现
sort -k3,3n -r -k4,4n -t \t data.csv
当我尝试这样做时,它会对文件进行排序,但不会对前两列进行排序。
解决方案
目前尚不清楚该文件是 TSV(制表符分隔)还是 CSV(逗号分隔)。问题表示 CSV,但使用制表符分隔符 ( -t \t
) 回答。尝试-t,
CSV。此外,需要将相反的顺序应用于每个键(每个键上的“r”后缀)。
sort -k3,3nr -k4,4nr -t, data.csv
推荐阅读
- css - 我怎样才能只悬停跨度的内容?
- python - 防止 python 创建的 CSV 将输出 64bit int 更改为科学形式
- c++ - C ++,输入数量变化的函数(idk如何描述)
- php - 在 Symfony 中调用 null 上的成员函数
- python - 如何使用范围在python中拆分列表?
- asp.net - 如何将 .ASPX 页面重定向到 .NET Core Razor 页面
- c++ - 析构函数与类的每个方法调用一起运行
- mql4 - 如何获得第 N 个未平仓 MQL4 / MT4 的利润?
- flutter - 如何在flutter dart中每3次点击显示插页式广告
- javascript - 无法通过 Github 将节点应用程序部署到 Heroku - 不运行 npm build