24小时热门版块排行榜    

Znn3bq.jpeg
查看: 653  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

meatball1982

铜虫 (小有名气)

[求助] 用awk修改原子序号

8:58 2013/5/20
我希望将各种原子类型的序号由1,2,3,...23.变成371,372,373,...,393。

1.要求用awk实现。
2.在polarize部分,原子的关联关系可能有很多。
3.程序要有相关的注释。


比如这一部分:

atom          1    1    C      "ser644              "     6     12.011    4

atom          2    2    N      "ser644              "     7     14.007    3
……
atom         23   23    H      "ser644              "     1      1.008    1

变成:

atom        371  371    C      "ser644              "     6     12.011    4

atom        372  372    N      "ser644              "     7     14.007    3
……
atom        393  393    H      "ser644              "     1      1.008    1


这一部分:

multipole     1   19    6             -5.25040

                                      -1.38471    0.00000    1.50161

                                       0.17141

                                       0.00000   -2.96582

                                       0.70579    0.00000    2.79441


变成:
multipole   371  389  376             -5.25040

                                      -1.38471    0.00000    1.50161

                                       0.17141

                                       0.00000   -2.96582

                                       0.70579    0.00000    2.79441


这一部分:
polarize      1               1.334      0.390       6   11

polarize      2               1.073      0.390       3   10

变成:
polarize    371               1.334      0.390     376  381

polarize    372               1.073      0.390     373  380
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : orig.key
  • 2013-05-20 09:07:39, 9.54 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

唉。还是学吧。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by zeppe at 2013-05-20 17:03:20
以下存为test.awk,使用时用命令
awk -f test.awk orig.key > targetfilename

BEGIN{
#默认分隔符为空格,这里不需要改动.
}
{
#当第一列为atom
if(match($1,"atom")
{
#按orig.key格式输 ...

收到,我试试哈。
唉。还是学吧。
3楼2013-05-20 18:42:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

zeppe

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
meatball1982: 金币+30, ★★★很有帮助, 就是这个。 2013-05-20 18:49:22
以下存为test.awk,使用时用命令
awk -f test.awk orig.key > targetfilename
CODE:
BEGIN{
#默认分隔符为空格,这里不需要改动.
}
{
#当第一列为atom
if(match($1,"atom"))
{
#按orig.key格式输出
printf("%s        %d  %d    %s      %s              %s     %s     %6.3f    %s\n",$1,$2+370,$3+370,$4,$5,$6,$7,$8,$9);
}
#当第一列为multipole
else if(match($1,"multipole"))
{
#按orig.key格式输出
printf("%s   %d  %d  %d             %8.5f\n",$1,$2+370,$3+370,$4+370,$5); #按orig.key格式输出
}
#当第一列为polarize
else if(match($1,"polarize"))   
{
printf("%s    %d               %s      %s   ",$1,$2+370,$3,$4);
#可能有多个要改的列
if(NF>4){
for(i = 5; i <= NF; ++i)
{
printf("%5d",$i + 370);
}
}
printf("\n");
}
#啥都不匹配则原样输出
else
{
printf("%s\n",$0);
}
}
END{
}

2楼2013-05-20 17:03:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿华中农业071010,320求调剂 +11 困困困困坤坤 2026-04-14 12/600 2026-04-15 18:58 by zhuwenxu
[考研] 290调剂生物0860 +37 哇哈哈,。 2026-04-11 43/2150 2026-04-15 18:55 by zhuwenxu
[考博] 26年电池方向博士申请 10+3 15615939259 2026-04-09 4/200 2026-04-15 14:22 by kwansei
[考研] 272分材料子求调剂 +41 Loy0361 2026-04-10 54/2700 2026-04-14 18:00 by lhj2009
[考研] 367求调剂 +11 hffQAQ 2026-04-09 11/550 2026-04-14 17:48 by lhj2009
[考研] 化工学硕294分,求导师收留 +32 yzyzx 2026-04-12 36/1800 2026-04-14 17:45 by lhj2009
[考研] 考研求调剂 +12 子木呐 2026-04-12 13/650 2026-04-14 01:19 by 王珺璞
[考研] 一志愿华南理工大学331分材料求调剂 +10 天下ww 2026-04-09 11/550 2026-04-13 23:25 by pies112
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +12 无情的小羊 2026-04-09 13/650 2026-04-13 14:17 by 张zhihao
[考研] 材料考研调剂 +29 云木达达 2026-04-11 31/1550 2026-04-13 13:32 by lyh鲁老师
[考研] 346分,工科0854求调剂,专硕 +6 moser233 2026-04-12 7/350 2026-04-12 22:11 by fqwang
[考研] 0854调剂 +12 长弓傲 2026-04-09 13/650 2026-04-12 09:56 by 逆水乘风
[考研] 农业管理302分求调剂 +3 xuening1 2026-04-10 3/150 2026-04-11 10:18 by zhq0425
[考研] 346,工科求调剂 +3 moser233 2026-04-09 3/150 2026-04-11 10:04 by zhq0425
[考研] 342电子信息专硕求调剂 +9 你让我怎么荔枝 2026-04-10 10/500 2026-04-11 08:33 by zhq0425
[考研] 085601初试330分找调剂 +10 流心奶黄包l 2026-04-09 10/500 2026-04-10 08:14 by Sammy2
[考研] 314求调剂 +14 weltZeng 2026-04-09 14/700 2026-04-09 23:14 by wolf97
[考研] 材料专硕(0856) 339分求调剂 +9 哈哈哈鹅哈哈哈 2026-04-09 10/500 2026-04-09 20:01 by Orcid
[考研] 一志愿中科院105500专业总分315求调剂 +6 lallalh 2026-04-09 7/350 2026-04-09 17:51 by lallalh
[考研] 083200 初试305分 求调剂 暂不考虑跨专业 +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
信息提示
请填处理意见