如何找到特定列的最大值并打印相应的行记录

如何找到特定列的最大值并打印相应的行记录

我有以下记录,现在我必须找到第 4 列的最大值并打印相应的行记录。

2017122600|0|0|0|0|0|0|0|0|0|0|0|0
2017122601|0|0|0|0|0|0|0|0|0|0|0|0
2017122602|0|0|0|0|0|0|0|0|0|0|0|0
2017122603|0|0|0|0|0|0|0|0|0|0|0|0
2017122604|0|0|0|0|0|0|0|0|0|0|0|0
2017122605|0|0|0|0|0|0|0|0|0|0|0|0
2017122606|0|0|0|0|0|0|0|0|0|0|0|0
2017122607|0|0|0|0|0|0|0|0|0|0|0|0
2017122608|0|0|0|0|0|0|0|0|0|0|0|0
2017122609|0|0|1|0|0|0|0|0|0|0|0|0
2017122610|0|0|0|0|0|0|0|0|0|0|0|0

预期输出是

2017122609|0|0|1|0|0|0|0|0|0|0|0|0

答案1

sort+head解决方案:

sort -t'|' -k4nr file | head -1
  • -t'|'-|视为字段分隔符
  • -k4nr- 按4第 th 字段的数字n倒序排序r

输出:

2017122609|0|0|1|0|0|0|0|0|0|0|0|0

答案2

使用 awk,这将适合:

awk -F'|' '$4>max{max=$4;r=$0}END{print r}' file

相关内容