由于结果文件中'Sum of Mulliken charges'出现多次(其实俺并未搞清楚其区别),这里提取最后一个。 外延:若想提取单点能、热力学数据,则可分别将'Sum of Mulliken charges'改为'SCF Done', 'Thermochemistry'关键词,同时调整-B36和36为合适数字。
2. 如果各模型中原子数不一样,则要添加一条判断原子数的语句。我试着写了个这
#!/bin/bash
for m in *.out
do
echo extracting from ${m} ... NATOM=`grep "NAtoms=" ${m} | tail -n 1 | awk '{print $2}' `
sed -n '/Mulliken charges:/,/Sum of Mulliken charges/p' ${m} | tail -n -$(( $NATOM + 1 )) > ${m%.*}.txt
sed -i '$d' ${m%.*}.txt
done
echo Job done!
echo
显然不够精炼,有心人可将之精简。
有时Gaussian输出的*.log文件中为“Mulliken atomic charges:”。 无意间搜到ChemiAndy前辈在某坛上发过类似脚本,如有雷同,还请海涵——重在交流嘛。