我有一个包含一长串整数的文件:
10
4
66
....
我想使用UNIX命令行工具找到最大值。我知道我可以使用
sort
(确实有使用sort
在SO上解决此问题的方法),但这效率低下,需要O(N * log(N))和足够的内存。通过一个简单的for循环,我应该能够找到O(N)中的最大值和几个字节的内存。似乎必须要有一些程序(名称类似于
max
)才能做到这一点---是吗? 最佳答案
如果不需要负数,则可以使用此方法:
awk '$0>x{x=$0};END{print x}' input.txt
使用它来支持负数:
awk 'BEGIN{x=-2147483648};$0>x{x=$0};END{print x}' input.txt
初始化
x
可使解决方案正确处理值关于Shell脚本: find maximum value in a sequence of integers without sorting,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11931676/