shell脚本:在整数的序列,找到最大值不排序(Shell script: find maximum

2019-09-21 03:57发布

我有一个整数一长串文件:

10
4
66
....

我想找到使用UNIX命令行工具的最大值。 我知道我可以使用sort (确实也有这个问题的解决方案上,使得在使用sort ),但这是效率低下,需要O(N *日志(N))和足够的内存。 用一个简单的for循环,我应该能够找到在O(N)的最大值和一对夫妇的内存字节。

这似乎肯定会有一些程序在那里(与像一个名字max ),这是否开箱---是真的吗?

Answer 1:

尝试这个:

awk '$0>x{x=$0};END{print x}' input.txt

[更新:]

awk 'BEGIN{x=-2147483648};$0>x{x=$0};END{print x}' input.txt

初始化X允许将溶液适当地处理整数列表与值<= 0。详情请参阅评论。



Answer 2:

awk '{if($1>a)a=$1;}END{print a}' temp3


Answer 3:

 max=1

 while read i
 do
  if [[ "$i" > "$max" ]]; then
     max="$i"
  fi
 done < a.txt

 echo "$max" > b.txt

A.TXT是输入文件(每行的整数)。 b.txt包含最大的A.TXT的整数。



Answer 4:

排序-nr inputfile.txt | 头-1,其中inputfile.txt包含了所有的数字。



文章来源: Shell script: find maximum value in a sequence of integers without sorting
标签: shell unix