【发布时间】:2016-12-13 14:19:33
【问题描述】:
我有一些 .log 的输出文件(5000 个文件),它们是 QM 计算的结果。在每个文件中,有两条特殊的行表示电子和轨道的数量,如下所示(与输出文件中的精确空格相同):
Number of electrons = 9
Number of orbitals = 13
我想到了一个脚本(bash 或 Fortran),作为这个问题的解决方案,它 grep 这两行(同时)并获取相应的整数值(例如 9 和 13),比较它们并找到两个值之间的差异,最后,将它们列出在具有相应文件名的新文本文件中。 我非常感谢您提供的任何帮助。
【问题讨论】:
-
整个文件中只有这两行的一个实例?
-
@Amir 到目前为止您尝试过什么?这是一个比较简单的
awk问题。请查看一些文档或在线教程,而不是不尝试就问。 -
要开始,请尝试
awk -F= '/^Number/ {print $2}' file,它将为您提供要减去的值。然后你可以将它们保存在变量中并做减法或在awk本身中做差异。然后是重定向到输出文件的问题。 -
@Inian 是的,每个文件只有这两个特殊行,没有类似的行存在
-
@VarunM 我实际上用“and”和“or”条件命令尝试了一些 grep -w 和 grep -Eo 。但首先,它们都没有给我确切对应的整数值,其次,该命令不能单独工作,这就是为什么我正在考虑编写一个包含所有命令的脚本。抱歉,我完全是脚本和命令的初学者。
标签: bash scripting grep fortran string-comparison