Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
使用awk查找最小值和最大值?_Awk_Text Processing - Fatal编程技术网

使用awk查找最小值和最大值?

使用awk查找最小值和最大值?,awk,text-processing,Awk,Text Processing,我有一个包含许多行类型的大文件。其中一种类型是这种形式的行: 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

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

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  
这些行都以原子开头,第7-9个字段是指定原子的x、y和z值。如何使用awk查找所有原子线,然后计算x、y和z值的最小值和最大值

这是我的档案:

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

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-f
#!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
}
开始{ min7=min8=min9=1000 } $1==“原子”{ 如果($7max7) max7=7美元 如果($8>max8) max8=8美元 如果($9>max9) max9=9美元 } 结束{ 打印min7、min8、min9 打印max7、max8、max9 }