如何用shell解析xml文件,将下图中<LOG_LIST>中<LEVEL>的值小于<ENABLE_LEVEL>值的输出,输出样式如下: 5

日志名级别<LEVEL>zthread.cpp:1234clibc2config.cpp:1735csopmanager.cpp:157src_info="csopman... 日志名 级别<LEVEL>zthread.cpp:123 4
clibc2config.cpp:173 5
csopmanager.cpp:15 7
src_info="csopmanager.cpp:24 7
展开
 我来答
不停的RUN
2012-09-04 · TA获得超过287个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:242万
展开全部
用shell不如用python,python很快就能解析出xml
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不知详解
2012-09-04 · 知道合伙人软件行家
不知详解
知道合伙人软件行家
采纳数:609 获赞数:2252
自学计算机。

向TA提问 私信TA
展开全部
#!/bin/awk
BEGIN{
print("logfile\t","level")
}
/<ENABLE_LEVEL>/{
a=$0;
sub(/[ ]*<ENABLE_LEVEL>/,"",a);
sub(/<\/ENABLE_LEVEL>[ ]*/,"",a);
en_level=a;
}
/<LOG src_info=/{
a=$0;
sub(/[ ]*<LOG src_info="/,"",a);
sub(/">[ ]*/,"",a);
logfile=a;
}
/<LEVEL>/{
level=$0;
sub(/[ ]*<LEVEL>/,"",level);
sub(/<\/LEVEL>[ ]*/,"",level);
if( level <= en_level){
print(logfile"\t"level);
}
}
----
你的日志命名为log,脚本命名为a.awk
加点分哈。
使用方法:

awk -f a.awk log
输出:
logfile level
file1.cpp:123 3
fileA.cpp:623 2
fileb.cpp:323 1
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式