24小时热门版块排行榜    

查看: 556  |  回复: 4

zhenyanwo

铁虫 (初入文坛)

[求助] 大家帮忙看看像这样的文件如何提取想要的内容。 已有2人参与

- That atom                    :               272
                 E-Eref  m_perp    ftot        fpar       fperp       eigen       delr  npart evalf   a1
                 ( eV )                     ( eV/Ang )              ( eV/Ang**2 )
   0  K=   0     0.0120  1 1      0.6542     -0.5858      0.2911      0.0000      0.054   0     2   0.00
   1  K=   1     0.2074  2 2      2.2216     -2.1115      0.6907      0.0000      0.290   1     5   0.00
   ...
SADDLE 1001 CONVERGED |ret  20134 |delta energy=    0.0255 |force_(tot,par,perp)=     0.0854    0.0217    0.0000 |eigenval=  -3.5023 |npart=    1 |delr=    0.343 |evalf=   327 |
  - Configuration stored in file :           sad1001
  - Total energy Saddle (eV)     : -4.1048037236E+03
RELAXATION
  ...
139  M=   5     0.0116  0 0      0.2256      0.1374      0.0000      0.0000      0.377   2   333   0.00
144  M=  10     0.0093  0 0      0.2595      0.1610      0.0000      0.0000      0.380   2   338   0.00
  ...
- Configuration stored in file :           min1001
  - Total energy Minimum (eV)    : -4.1052381485E+03
MINIMUM 1001 ACCEPTED |E(fin-ini)=   -0.4090 |E(fin-sad)=   -0.4344 |npart=   18 |delr=    1.186 |evalf=   395 |
- That atom                    :               744
                 E-Eref  m_perp    ftot        fpar       fperp       eigen       delr  npart evalf   a1
                 ( eV )                     ( eV/Ang )              ( eV/Ang**2 )
   0  K=   0     0.0110  1 1      0.5893     -0.5266      0.2644      0.0000      0.054   0     2   0.00
   1  K=   1     0.1973  2 2      2.0867     -1.9790      0.6615      0.0000      0.287   0     5   0.00
   2  K=   2     0.5864  3 4      3.1487     -2.5694      1.8201      0.0000      0.579  12    10   0.00
SADDLE 1002    FAILED |ret  60132 |delta energy=    0.1470 |force_(tot,par,perp)=     0.0861    0.0179    0.0000 |eigenval=   0.1918 |npart=   20 |delr=    1.050 |evalf=   288 |
我想实现,从文件中提取这些信息
1、如果saddle xxxx 显示的是CONVERGED 那么记录下当前原子标号 ,例如:that atom : 272
并记录delta energy 例如:0.0255
2、这个文件特点是文件中saddle 显示的是CONVERGED,下面就是 RELAXATION过程
要记录E(fin-ini) ,E(fin-sad)
最后想要得到的是信息:272   0.0255   -0.4090   -0.4344
3、如果 saddle 显示的是  FAILED 那么就跳过不记录任何信息

不知道如何实现,是不是在原子标号处做上标记,在看saddle的情况,如果是CONVERGED ,就记录信息。如果不是再往下走,如何写成代码,还是没想好,希望高人指点!谢谢,我只有五个金币,全部奉上。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

karon1988

金虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
zhenyanwo: 金币+2, ★★★很有帮助, 谢谢,办法很好! 2015-07-23 09:44:56
你这需求, 用正则表达式吧

[ 发自小木虫客户端 ]
2楼2015-07-22 09:56:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
zhenyanwo: 金币+3, ★★★很有帮助, 谢谢!办法很受用! 2015-07-23 09:45:33
awk吧, 或者perl
这些脚本语言都可以
3楼2015-07-22 21:07:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhenyanwo

铁虫 (初入文坛)

引用回帖:
3楼: Originally posted by jerkwin at 2015-07-22 21:07:12
awk吧, 或者perl
这些脚本语言都可以

谢谢,我先试试看。
4楼2015-07-23 08:24:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhenyanwo

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by karon1988 at 2015-07-22 09:56:44
你这需求, 用正则表达式吧

谢谢!
5楼2015-07-23 08:42:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhenyanwo 的主题更新
信息提示
请填处理意见