vehomzzz
vehomzzz

Reputation: 44598

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)

Upvotes: 3

Views: 1951

Answers (2)

Norman Ramsey
Norman Ramsey

Reputation: 202615

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.

Upvotes: 3

VeeArr
VeeArr

Reputation: 6178

awk:

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

Upvotes: 1

Related Questions