shell批量将高斯输出(.out/.log)文件转化成输入文件

这篇博客介绍了一个用于批量转换大量高斯输出文件到计算输入文件的Shell脚本,避免了手动操作的繁琐。脚本首先创建一个目标文件夹,然后遍历指定文件夹中的所有.out文件,自动提取原子数和坐标信息,生成新的.gjf文件。用户只需将代码保存为.sh文件,赋予执行权限,并在终端运行,即可等待转换完成。
摘要由CSDN通过智能技术生成

        将高斯输出文件坐标转化成下一次计算的输入文件时,如果只是少数几个输出文件,手动提取无操作焦虑,但是如果是几十个,甚至是上万个,手动显然不现实,下面的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	#读取分子原子数

#以下小段可以自定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值