Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用AWK在大于x的第二列中查找最小的数字_Bash_Scripting_Sed_Awk - Fatal编程技术网

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

Bash 使用AWK在大于x的第二列中查找最小的数字,bash,scripting,sed,awk,Bash,Scripting,Sed,Awk,我有一个有两列的文件 sdfsd 1.3 sdfds 3 sdfsdf 2.1 dsfsdf -1 如果x是2 我想打印sdfsdf 2.1 如何用awk表达它(bash或sed也可以)awk: BEGIN { min=0 mint="" threshold=2 } { if($2 > threshold && ($2 < min || min == 0)) { min = $2 mint = $1 } } END { pr

我有一个有两列的文件

sdfsd 1.3
sdfds 3
sdfsdf 2.1
dsfsdf -1 
如果x是2

我想打印sdfsdf 2.1

如何用awk表达它(bash或sed也可以)

awk:

BEGIN {
  min=0
  mint=""
  threshold=2
}
{
  if($2 > threshold && ($2 < min || min == 0)) {
    min = $2
    mint = $1
  }
}
END
{
  print mint, min
}
开始{
最小值=0
mint=“”
阈值=2
}
{
如果($2>阈值&($2
这样做非常诱人:

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

在您的示例上进行测试和工作。如果没有第二列至少为2,则不打印任何内容。

如果阈值与最大值相同,则输出为零。它可能会输出一个错误。不要忘记将输入文件传递给排序