gpt4 book ai didi

linux - 如何使用 "awk"执行具有相同尾部的多个文件并导出到一些具有新尾部的新文件?

转载 作者:太空宇宙 更新时间:2023-11-04 05:25:09 24 4
gpt4 key购买 nike

我有一个包含许多文件的文件夹,每个文件名为xxx.pqr,其中包含蛋白质结构记录。编写一个 bash 脚本,将每个 pqr 文件中的蛋白质移动到原点 (0,0,0) 的中心。将包含重新定位的蛋白质的每个新文件命名为 xxxx.pqr.centered。

我使用“awk”将蛋白质移动到它所在的位置,但是在尝试为每个文件创建 xxx.pqr.centered 时遇到了一些麻烦,这是我的代码,我真的不知道最后几句话:

awk -v n=0 -v sumx=0 -v sumy=0 -v sumz=0 ' { if($1 == "ATOM") sumx=sumx+$6;sumy=sumy+$7;sumz=sumz+$8;n=n+1; if($1 == "ATOM") printf("%s%8.3f%8.3f%8.3f%s\n", substr($0,1,30),$6-(sumx/n),$7-(sumy/n),$8-(sumz/n),substr($0,55,100))}' *.pqr > **????.centered**

最佳答案

这是我的答案,因为我没有您的 .pqr 文件,所以我无法真正测试它,但它应该可以工作(我还通过在需要时合并和使用缩写形式来改进 awk 命令):


对于/path/to/files/*.pqr 中的文件

awk -v n=0 -v sumx=0 -v sumy=0 -v sumz=0
'{
if($1 == "ATOM") {
sumx+=$6;sumy+=$7;sumz+=$8;n++;
printf("%s%8.3f%8.3f%8.3f%s\n", substr($0,1,30),$6-(sumx/n),$7-(sumy/n),$8-(sumz/n),substr($0,55,100))
}
} ' $file > ${file}.centered
完毕

关于linux - 如何使用 "awk"执行具有相同尾部的多个文件并导出到一些具有新尾部的新文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33459294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com