У меня есть файл с двумя столбцами,
sdfsd 1.3 sdfds 3 sdfsdf 2.1 dsfsdf -1
если х равен 2
Я хочу напечатать sdfsdf 2.1
Как выразить это в awk (bash или sed тоже подойдут)
Это ужасно заманчиво сделать это:
sort -k 2 -g | awk '$2 >= 2 { print; exit }'
Проверено и работает на вашем примере. Если ни один второй столбец не меньше 2, он ничего не печатает.
awk:
BEGIN { min=0 mint="" threshold=2 } { if($2 > threshold && ($2 < min || min == 0)) { min = $2 mint = $1 } } END { print mint, min }