我们需要从多个文件中提取多个标记值。 我们大约有1000个文件具有类似的数据:如何从linux中的多个xml文件中提取多个标记值
<Employee>
<Id>432361</Id>
<EmpName>Stuart</EmpName>
<SidNumber>0251115</SidNumber>
<CreatedUtc>2016-11-14T22:27:53.477+08:00</CreatedUtc>
<EpisodeId>682082</EpisodeId>
<CorrelationId>323A6C86-76AA-E611-80DA-005056B46023</CorrelationId>
</Employee>
我们需要从所有文件解压EmpName,SidNumber和EpisodeId到一个文件中。 我们能够一次获得一个值,例如。使用命令:
nawk -F'[<>]' '/<EpisodeId>/{print $3}' *.dat
但是我们需要获得每个文件的多个标签。 输出格式应该是类似的东西,以
EmpName Stuart SidNumber 0251115 EpisodeId 682082
EmpName Stuart SidNumber 0251115 EpisodeId 682082
,或至少有空格分隔值
Stuart 0251115 682082
Stuart 0251115 682082
任何帮助,将不胜感激。
由于提前, 维韦克
不要使用'sed'或'awk',它们不适合这项工作。去找一些xml感知工具,比如'xmllint',这里有一种你不应该做的事情,但是对于小型的xmls来说,这是一个很好的选择。 '声明$(awk -v FS ='[<>]''length($ 3){print $ 2“=”$ 3}'inputfile)'then'echo $ EmpName' –