从dbcheck日志中收集信息

时间:2018-06-18 09:34:28

标签: oracle batch-file variables logging

我的问题是我想从数据库检查日志收集信息,如数据库名称,版本以及更多Cmd

以下是此日志的简短示例:

########################################################################
#               Oracle Database Check Report                           #
########################################################################
Date Of This Report:

13 June      2018  12:58

Database Name:

XE

Database Version:

11.2.0.2.0

Database Characterset:

AL32UTF8

Database Language:

AMERICAN

...

所以我想搜索几个要保存到另一个文件的内容,以便稍后将它们插入到表中。什么是存档的最佳方式? 主要问题是在日志中搜索这些内容,因为使用

/find "Database Name:" xxx.log 

只给我一行

----------- xxx.log
Database Name:

需要获取以下数据库名称。 但我缺少批量技术

平台:Windows。 数据库:Oracle。

1 个答案:

答案 0 :(得分:0)

批处理不是使用正则表达式压缩报表的首选语言。

我建议使用PowerShell。该脚本返回可以进一步处理的PropertyValue对。

$File = '.\OracleDataBaseCheckReport.txt'

$PropertyValue = (Get-Content $File -raw) `
     -Replace "(?smi)^(Da.*?):\s*\r?\n\s*\r?\n(.*?)$",'"$1"="$2"' `
     -Replace ' +',' ' `
     -Split '\r?\n' | 
   Select-String '"="'
PS> $PropertyValue

"Date Of This Report"="13 June 2018 12:58"
"Database Name"="XE"
"Database Version"="11.2.0.2.0"
"Database Characterset"="AL32UTF8"
"Database Language"="AMERICAN"