如何比较复杂的linux文本文件中的数字?

时间:2015-01-22 22:47:59

标签: linux bash file

我有一个巨大的文件,如下所示:

  

1234 4567 3566

     

2432 434 95054

     

382 9983 90

用标签分隔数字。

我是linux和BASH的新手,我需要使用终端(不是其他文件中的脚本)来比较第3列中的所有数字。

我尝试了grep命令,但我无法找到一种方法来做我想做的一切(找到文件,打开它,转到第3列,找到最大的数字)。是否可以只使用一个命令?管道可能吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

听起来您想要在文件中打印第三列中值最高的行。这个awk脚本可以做到:

awk '$3>max{max=$3;line=$0}END{print line}' file

$3指的是第三列。如果它大于max的当前值,请更新max并将line设置为整行$0的内容。处理完文件后,打印出最大值的行。

如果您只想查找最大数字并且不关心该行的其余部分,则脚本稍微简单一些:

awk '$3>max{max=$3}END{print max}' file

只要第三列的值更高,这只会更新max的值,并在文件处理后打印出来。

答案 1 :(得分:0)

试试这个:

$ awk '$3>v{v=$3}END{print v}' file
95054