首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得CSV文本文件中特定字段的最大值?

问如何获得CSV文本文件中特定字段的最大值?
EN

Stack Overflow用户
提问于 2016-01-11 22:00:18
回答 2查看 1.4K关注 0票数 3

我的文本文件示例(CSV,逗号分隔)中的每一行如下所示:

代码语言:javascript
复制
2016-01-10,23:56:07,10,71,47

可以看到,字段3、4和5是数值值。

对于每一行,我只想得到字段3和4的最大值。类似于:

代码语言:javascript
复制
awk -F ',' '{print max($3,$4)}'

(这可能不是一个真正的AWK语法,但它是我能想到的最接近的语法)。

因此,对于上面的一行,得到的数字是'71‘。

有更多行的示例:

代码语言:javascript
复制
2016-01-10,23:53:07,6,99,41
2016-01-10,23:54:07,10,88,44
2016-01-10,23:55:07,31,71,46
2016-01-10,23:56:07,71,10,47

结果:

代码语言:javascript
复制
99
88
71
71

如何在Linux shell上做到这一点?

我建议了AWK,但其他解决方案都可以。

EN

回答 2

Stack Overflow用户

发布于 2016-01-11 22:05:23

这一条衬垫可能会有帮助:

代码语言:javascript
复制
awk -F, '{print ($3>$4?$3:$4)}' file
票数 6
EN

Stack Overflow用户

发布于 2016-01-11 22:37:48

如果您需要对格式化进行更多的控制,或者引用了cvs字段,Python是一个不错的选择:

代码语言:javascript
复制
$ python -c "
> import csv, fileinput
> for line in csv.reader(fileinput.input()): 
>    print max(map(float, line[2:4]))
> " /tmp/file.csv
99.0
88.0
71.0
71.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34731937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档