我有一个巨大的文件,如下所示:
1234 4567 3566
2432 434 95054
382 9983 90
用标签分隔数字。
我是linux和BASH的新手,我需要使用终端(不是其他文件中的脚本)来比较第3列中的所有数字。
我尝试了grep命令,但我无法找到一种方法来做我想做的一切(找到文件,打开它,转到第3列,找到最大的数字)。是否可以只使用一个命令?管道可能吗?
感谢您的帮助!
答案 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