使用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
}