我有一个包含许多类型行的大文件。其中一种类型是这种形式的行:
这些行都以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
有人能告诉我该怎么做吗?
答案 0 :(得分:2)
#!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
}