【问题标题】:Using awk to find min and max?使用 awk 查找最小值和最大值?
【发布时间】:2014-11-05 14:59:45
【问题描述】:

我有一个包含多种行的大文件。其中一种类型是这种形式的行:

行都以ATOM开头,第7-9个字段是指定原子的x、y、z值。如何使用 awk 查找所有 ATOM 行,然后计算 x、y 和 z 值的最小值和最大值?

这是我的文件:http://pastebin.com/EqA2SUMy

其中一种类型是这种形式的行:

ATOM      1  N   ASP A 435       7.397  28.376 121.784  1.00 34.35           N  
ATOM      2  CA  ASP A 435       8.023  27.301 122.545  1.00 30.66           C  
ATOM      3  C   ASP A 435       8.170  27.721 124.009  1.00 31.39           C  
ATOM      4  O   ASP A 435       9.078  28.509 124.284  1.00 38.78           O  

谁能告诉我怎么做?

【问题讨论】:

    标签: awk text-processing


    【解决方案1】:
    #!awk -f
    BEGIN {
      min7 = min8 = min9 = 1000
    }
    $1 == "ATOM" {
      if ($7 < min7)
        min7 = $7
      if ($8 < min8)
        min8 = $8
      if ($9 < min9)
        min9 = $9
      if ($7 > max7)
        max7 = $7
      if ($8 > max8)
        max8 = $8
      if ($9 > max9)
        max9 = $9
    }
    END {
      print min7, min8, min9
      print max7, max8, max9
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2015-06-29
      • 2013-09-13
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 2017-09-20
      • 2017-04-20
      相关资源
      最近更新 更多