开发者

Using AWK find a smallest number in a second column bigger than x

I have a file with two开发者_如何学运维 columns,

sdfsd 1.3
sdfds 3
sdfsdf 2.1
dsfsdf -1 

if x is 2

I want to print sdfsdf 2.1

How to express it in awk (bash or sed is fine too)


It's awfully tempting to do this:

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

Tested and works on your example. If no second column is at least 2, it prints nothing.


awk:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜