我有log file。输出示例如下所示:
...
10-MAY-95 14:16:21*(CONNECT_DATA=(SID=reltest)(CID=(PROGRAM=C:\ORAWIN\BIN\PLUS31.EXE) (HOST=WINDOWSPC)(USER=CCLOW))*(ADDRESS=(PROTOCOL=tcp)(HOST=144.25.23.246)(PORT=3366))*establish*reltest*0
...
日志参数以适当的组件配置文件的形式输入:
log_parameter_component = value
所以,目标是解析上面的输出并仅显示key = value,key = value等的结果:
log_parameter_component = value, log_parameter_component = value, etc.
解析后结果应如下所示:
...
SID=reltest, USER=CCLOW, HOST=144.25.23.246
...
如何解决这个问题?
答案 0 :(得分:0)
这应该适用于perl
,但我承认第二部分可能会被避免:
perl -p -e 's/.*?\(([^()]+?)=([^()]+?)\).*?/$1=$2,/g' myfile.log | perl -p -e 's/(.*),.*/$1/'
答案 1 :(得分:0)
但是,如果我想添加一些额外的模式,脚本会是什么样子?如果我将使用awk脚本? 防爆。仅适用于:SID,USER,SERVER,HOST。