24小时热门版块排行榜    

查看: 648  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 298-一志愿中国农业大学-求调剂 +11 手机用户 2026-03-17 12/600 2026-03-23 23:51 by 热情沙漠
[考研] 306求0703调剂一志愿华中师范 +7 纸鱼ly 2026-03-21 8/400 2026-03-23 23:31 by chixmc
[考研] 265求调剂 +10 梁梁校校 2026-03-17 10/500 2026-03-23 21:17 by 一切OK
[考研] 070300化学求调剂 +8 苑豆豆 2026-03-20 8/400 2026-03-23 20:57 by baobaoye
[考研] 接收2026硕士调剂(学硕+专硕) +4 allen-yin 2026-03-23 6/300 2026-03-23 15:04 by 汪!?!
[考研] 328求调剂 +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-17 10/500 2026-03-23 13:05 by 醉在风里
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[考研] 317求调剂 +12 申子申申 2026-03-19 18/900 2026-03-22 22:23 by luoyongfeng
[考研] 319求调剂 +4 小力气珂珂 2026-03-20 4/200 2026-03-22 15:53 by ColorlessPI
[考研] 275求调剂 +6 shansx 2026-03-22 8/400 2026-03-22 15:27 by barlinike
[考研] 生物学调剂 +5 Surekei 2026-03-21 5/250 2026-03-22 14:39 by tcx007
[考研] 材料工程专硕 348分求调剂 +3 冬辞. 2026-03-17 5/250 2026-03-21 18:47 by 学员8dgXkO
[考研] 求调剂 +3 13341 2026-03-20 3/150 2026-03-21 18:28 by 学员8dgXkO
[考研] 求助 +5 梦里的无言 2026-03-21 6/300 2026-03-21 17:51 by 学员8dgXkO
[考研] 311求调剂 +3 勇敢的小吴 2026-03-20 3/150 2026-03-21 17:40 by ColorlessPI
[考研] 294求调剂材料与化工专硕 +15 陌の森林 2026-03-18 15/750 2026-03-20 23:28 by JourneyLucky
[考研] 求调剂,一志愿:南京航空航天大学大学 ,080500材料科学与工程学硕,总分289分 +4 @taotao 2026-03-19 4/200 2026-03-20 22:14 by JourneyLucky
[考研] 材料学硕297已过四六级求调剂推荐 +11 adaie 2026-03-19 11/550 2026-03-20 21:30 by laoshidan
[考研] 招收调剂硕士 +4 lidianxing 2026-03-19 12/600 2026-03-20 12:25 by lidianxing
信息提示
请填处理意见