代码之家  ›  专栏  ›  技术社区  ›  vehomzzz

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

  •  3
  • vehomzzz  · 技术社区  · 16 年前

    我有一个有两列的文件,

    sdfsd 1.3
    sdfds 3
    sdfsdf 2.1
    dsfsdf -1 
    

    如果x是2

    我想打印SDFSDF 2.1

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

    2 回复  |  直到 13 年前
        1
  •  3
  •   Norman Ramsey    16 年前

    这样做是非常诱人的:

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

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

        2
  •  1
  •   VeeArr    16 年前

    AWK:

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