计算化学公社

标题: 高斯输出文件.log能不能在Linux中查看虚频? [打印本页]

作者
Author:
XIEH    时间: 2024-4-15 11:38
标题: 高斯输出文件.log能不能在Linux中查看虚频?
由于每次优化完结构后都要下载log文件用gaussview查看是否存在虚频,有点麻烦。
于是想写一个批量查看优化后结构是否存在虚频的脚本,但是不知道怎么在纯文本的log文件中提取有关振动频率的信息。

麻烦大佬们支支招。

作者
Author:
sobereva    时间: 2024-4-15 12:08
grep NImag [输出文件名]
archive段落NImag后面的值是虚频数
作者
Author:
Dempey    时间: 2024-4-15 12:11
Gaussian输出的频率每一行都以“Frequencies”开头,所以可以使用
  1. grep Frequencies *.log
复制代码

查看是否有虚频
(, 下载次数 Times of downloads: 0)
另外虚频一般输出在最开始,所以只检测第一行应该就够了
(, 下载次数 Times of downloads: 1)
作者
Author:
XIEH    时间: 2024-4-21 20:55
Dempey 发表于 2024-4-15 12:11
Gaussian输出的频率每一行都以“Frequencies”开头,所以可以使用

查看是否有虚频

感谢感谢!
作者
Author:
chain    时间: 2024-11-7 04:48
sobereva 发表于 2024-4-15 12:08
grep NImag [输出文件名]
archive段落NImag后面的值是虚频数

今天刚发现在最后的archive段落里"NImag"有可能会被分到两行里,grep "NImag" [输出文件名]的话就找不到了hhh (, 下载次数 Times of downloads: 0)
作者
Author:
Loading0760    时间: 2024-11-7 11:16
chain 发表于 2024-11-7 04:48
今天刚发现在最后的archive段落里"NImag"有可能会被分到两行里,grep "NImag" [输出文件名]的话就找不到 ...

提供一个邪门的办法
  1. grep -Pzo 'N\s*I\s*m\s*a\s*g\s*=\s*\d' a.log
复制代码

grep的跨行匹配+正则表达式,虽然形式不简洁,但是有用.

作者
Author:
chain    时间: 2024-11-8 03:44
本帖最后由 chain 于 2024-11-8 03:48 编辑
Loading0760 发表于 2024-11-7 11:16
提供一个邪门的办法

grep的跨行匹配+正则表达式,虽然形式不简洁,但是有用.

哇(感谢!
我用GPT-4o写了这个命令,亲测也可以用
  1. NImag=$(grep "Frequencies --" ${gau_file} | awk '{for (i=3; i<=NF; i++) if ($i < 0) count++} END {print count+0}')
复制代码



作者
Author:
mfdsrax2    时间: 2024-11-8 10:06
也可以用Linux版的GaussView,和Win版的功能是一样的
作者
Author:
sobereva    时间: 2024-11-8 21:34
chain 发表于 2024-11-7 04:48
今天刚发现在最后的archive段落里"NImag"有可能会被分到两行里,grep "NImag" [输出文件名]的话就找不到 ...

molclus判断有没有虚频的时候都是自动把下面一行接到当前行再判断有没有Nimag
作者
Author:
chain    时间: 2024-11-9 03:20
sobereva 发表于 2024-11-8 21:34
molclus判断有没有虚频的时候都是自动把下面一行接到当前行再判断有没有Nimag

懂了!谢谢社长!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3