将高斯输出文件坐标转化成下一次计算的输入文件时,如果只是少数几个输出文件,手动提取无操作焦虑,但是如果是几十个,甚至是上万个,手动显然不现实,下面的Shell脚本可以批量实现一键提取(注:这是在前人智慧基础上的改进版,解决了原版本需要每次手动输入原子数的问题):
使用方法:
1.以下代码复制进后缀为.sh的文件(如xx.sh),传入linux下目标文件所在文件夹
2.cd进所在文件夹,chmod 777 xx.sh
3.在终端输入:./xx.sh &
等待执行完毕后产生一个out2gjf文件夹,新生成输入文件在该文件夹内
#!/bin/bash
dir=out2gjf
mkdir ${dir}
for i in *.out #如果输出文件后缀是.log,请将*.out修改成*.log
do
fil=`echo ${i}|sed "s/out/gjf/g"` #对每一个输出文件的后缀out变成gjf,并赋值回file
n=`more ${i}|cat -n|grep Number|tail -n 1|cut -c 1-8` #读取输出文件,通过cat -n对每一行编号,再通过grep抓取出关键词Number所在的所有行,最后通过tail和cut提取最后一行所在的行号
((n=n+2)) #第一个坐标出现在第n+2那一行,赋值回n
atoms_num=`more ${i}|cat -n|grep Rotational|tail -n 1|cut -c 1-8`-1-n #读取分子原子数
#以下小段可以自定