【发布时间】:2023-03-27 04:36:01
【问题描述】:
这是我的输入文件
<MessageOut>
<Attribute name="Session-Id" value="22250"/><Attribute name="CC-Request-Type" value="2"/><Attribute name="CC-Request-Number" value="1"/><Attribute name="Origin-Host" value="indlnqw291"/><Attribute name="Origin-Realm" value="amdocs.com"/><Attribute name="Auth-Application-Id" value="4"/><Attribute name="Result-Code" value="5031"/><Attribute name="CC-Session-Failover" value="1"/><Attribute name="Low-Balance-Indication" value="0"/><Attribute name="Multiple-Services-Credit-Control"><Group><Attribute name="Result-Code" value="5031"/><Attribute name="Service-Identifier" value="0"/><Attribute name="Rating-Group" value="2"/></Group></Attribute></MessageOut>
<MessageOut>
<Attribute name="Session-Id" value="22250"/><Attribute name="CC-Request-Type" value="3"/><Attribute name="CC-Request-Number" value="2"/><Attribute name="Origin-Host" value="indlnqw291"/><Attribute name="Origin-Realm" value="amdocs.com"/><Attribute name="Auth-Application-Id" value="4"/><Attribute name="Result-Code" value="5031"/></MessageOut>
<MessageOut>
<Attribute name="Session-Id" value="22250"/><Attribute name="CC-Request-Type" value="1"/><Attribute name="CC-Request-Number" value="0"/><Attribute name="Origin-Host" value="indlnqw291"/><Attribute name="Origin-Realm" value="amdocs.com"/><Attribute name="Auth-Application-Id" value="4"/><Attribute name="Result-Code" value="5031"/><Attribute name="CC-Session-Failover" value="1"/><Attribute name="Low-Balance-Indication" value="0"/><Attribute name="Multiple-Services-Credit-Control"><Group><Attribute name="Result-Code" value="5031"/><Attribute name="Service-Identifier" value="0"/><Attribute name="Rating-Group" value="2"/></Group></Attribute></MessageOut>
我想要“Multiple-Services-Credit-Control”之后的 grep 结果代码
预期结果:
"CC-Request-Type" value="1"
"CC-Request-Number" value="0"
"Result-Code" value="5031"
"CC-Request-Type" value="2"
"CC-Request-Number" value="1"
"Result-Code" value="5031"
"CC-Request-Type" value="3"
"CC-Request-Number" value="2"
"Result-Code" value="5031"
提前致谢
【问题讨论】:
-
您用
sed和grep标记了这个,但是这些工具都不是为处理结构化标记而设计的,这对于标准的unix 过滤器来说通常过于复杂。虽然您的特定用例可能可行,但我可能只使用您最喜欢的语言中的 XML 解析库 -
到目前为止你有没有尝试过?所以不是我拥有这个的地方,我期待这个并等待它发生'。请发布您尝试过的内容。
-
我尝试使用下面的 cmd,如果我 grep 单一消息输出会话,它工作正常,但我不能用于 3 个会话 sed -n -e 's/^.*Multiple-Services-Credit-Control //p' xml.txt | sed -n -e 's/^.*Result-Code" value=//p' | cut -d'"' -f2
-
为什么不创建一个Perl脚本并逐行读取数据?
-
其实我不知道 perl ,请建议我哪一个是最适合这项工作的 perl、unix 或 xmllint
标签: perl xml-parsing grep text-processing