使用AWK在大于x的第二列中找到最小数字

时间:2010-06-04 20:04:23

标签: bash scripting sed awk

我有一个包含两列的文件,

sdfsd 1.3
sdfds 3
sdfsdf 2.1
dsfsdf -1 

如果x是2

我想打印sdfsdf 2.1

如何在awk中表达它(bash或sed也很好)

2 个答案:

答案 0 :(得分:3)

这样做非常诱人:

sort -k 2 -g  | awk '$2 >= 2 { print; exit }'

测试并处理您的示例。如果没有第二列至少为2,则不会打印任何内容。

答案 1 :(得分:1)

AWK:

BEGIN {
  min=0
  mint=""
  threshold=2
}
{
  if($2 > threshold && ($2 < min || min == 0)) {
    min = $2
    mint = $1
  }
}
END
{
  print mint, min
}