24小时热门版块排行榜    

查看: 727  |  回复: 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的回帖

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的回帖

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的回帖
相关版块跳转 我要订阅楼主 meatball1982 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 时间戳又变了 +7 wuchongjun 2026-08-20 8/400 2026-08-20 15:49 by 开心的小狮子
[基金申请] 言之凿凿,8月21号(明天)放榜 +14 医学老男孩 2026-08-20 16/800 2026-08-20 15:47 by LNP@mRNA
[基金申请] 时间戳变了,能看出什么问题? +17 基诺咪客 2026-08-17 21/1050 2026-08-20 14:54 by 昝占全2025
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 今天基金会出结果吗?20260819 +14 kkkl_v 2026-08-19 15/750 2026-08-20 08:21 by sunzitan
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
信息提示
请填处理意见