使用awk查找最小值

时间:2015-06-22 03:21:52

标签: linux shell awk

我正在尝试从文件中找到最小值。

input.txt
1
2
4
5
6
4

这是我正在使用的代码:

awk '{sum += $1; min = min < $1 ? min : $1} !(FNR%6){print min;sum=min = ""}' input.txt

但它不起作用。任何人都可以在我的代码中看到错误吗?

2 个答案:

答案 0 :(得分:4)

使用下面的脚本在txt文件中查找最小值。

  awk 'min=="" || $1 < min {min=$1} END{ print min}' FS="|" input.txt

答案 1 :(得分:3)

在第一行将min设置为$ 1

awk 'NR == 1 {min = $1} {sum += $1; min = min < $1 ? min : $1} !(FNR%6){print min;sum=min = ""}' input.txt

输出:

1

请注意,sum未使用,您可以简化为:

awk 'NR == 1 {min = $1;} {min = min < $1 ? min : $1} !(FNR%6){print min;}' input.txt

允许任意数量的行:

awk 'NR == 1 {min = $1;} {min = min < $1 ? min : $1} END{print min;}' input.txt