Используя AWK, найдите наименьшее число во втором столбце больше x - PullRequest
3 голосов
/ 05 июня 2010

У меня есть файл с двумя столбцами,

sdfsd 1.3
sdfds 3
sdfsdf 2.1
dsfsdf -1 

если х равен 2

Я хочу напечатать sdfsdf 2.1

Как выразить это в awk (bash или sed тоже подойдут)

Ответы [ 2 ]

3 голосов
/ 05 июня 2010

Это ужасно заманчиво сделать это:

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

Проверено и работает на вашем примере. Если ни один второй столбец не меньше 2, он ничего не печатает.

1 голос
/ 05 июня 2010

awk:

BEGIN {
  min=0
  mint=""
  threshold=2
}
{
  if($2 > threshold && ($2 < min || min == 0)) {
    min = $2
    mint = $1
  }
}
END
{
  print mint, min
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...