计算化学公社

标题: 如何通过shell语言编写得到某列的最大值 [打印本页]

作者
Author:
侧耳倾听    时间: 2022-1-24 14:09
标题: 如何通过shell语言编写得到某列的最大值
各位老师好,我想通过shell脚本得到A.xyz文件中第4-6列的最大值,并把4、5、6列最大值分别赋给L1、L2、L3变量,请教大家下面的编写是否正确?谢谢
L1=$(awk 'NR==4 {max=$1; next} {max=max>$1? max:$1} END' A.xyz)
L2=$(awk 'NR==5 {max=$1; next} {max=max>$1? max:$1} END' A.xyz)
L3=$(awk 'NR==6 {max=$1; next} {max=max>$1? max:$1} END' A.xyz)

作者
Author:
lyj714    时间: 2022-1-24 14:15
NR是指的行而不是列,标准的xyz有4-6列?不是只有4列的吗?列用NF域
作者
Author:
侧耳倾听    时间: 2022-1-24 15:23
lyj714 发表于 2022-1-24 14:15
NR是指的行而不是列,标准的xyz有4-6列?不是只有4列的吗?列用NF域

好的,谢谢您!应该是gro文件
作者
Author:
Daniel_Arndt    时间: 2022-1-25 03:42
“$1”恐怕不是4、5、6列吧?
作者
Author:
granvia    时间: 2022-1-25 18:00
用 sort -k4n结合tail -n 1获取第4列最大值,并把结果赋予shell变量即可
作者
Author:
DavyHou    时间: 2022-3-9 19:56
awk值得考虑




欢迎光临 计算化学公社 (http://ccc.keinsci.com/) Powered by Discuz! X3.3