如何使用Unix Sed/Awk查找XML文件的内容?
我有一个XML文件(MyXML.XML),如下所示:如何使用Unix Sed/Awk查找XML文件的内容?,unix,xml-parsing,sed,awk,Unix,Xml Parsing,Sed,Awk,我有一个XML文件(MyXML.XML),如下所示: <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns3:GetAllInfoFromRest xmlns:ns2="http://com.lanuk.cfe/b2_7/service/objects"
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:GetAllInfoFromRest xmlns:ns2="http://com.lanuk.cfe/b2_7/service/objects" xmlns:ns3="http://com.lanuk.cfe/b2_7/service/operations">
1111,GH43567,Hamburger,GET,278598655,\n000001, ,Kunal,Bhyuo,Ramond,856 K. 98 Rd, , ,Tripura,AGT,INDIA,856987, ,S,S,S,8956,\666666
</ns3:GetAllInfoFromRest>
</S:Body>
</S:Envelope>
但很明显,我犯了一些错误,因为它不起作用。
有人能提出其他解决方法吗?使用awk
awk '{gsub(/<[^>]*>/,"")}NF{$1=$1;print}' file.xml
1111,GH43567,Hamburger,GET,278598655,\n000001, ,Kunal,Bhyuo,Ramond,856 K. 98 Rd, , ,Tripura,AGT,INDIA,856987, ,S,S,S,8956,\666666
awk'{gsub(/]*>/,“”)}NF{$1=$1;print}file.xml
印度阿格特特里普拉98路856号,拉蒙德比尤库纳尔,GH43567,汉堡包,GET,278598655,n000001,邮编:856987,S,S,S,8956,666666
gsub
部分替换所有以
开头并以code>结尾的内容,因此删除eks。
NF
只需打印出包含数据的行,删除空行即可<代码>$1=$1删除了前导空格和尾随空格。使用awk
awk '{gsub(/<[^>]*>/,"")}NF{$1=$1;print}' file.xml
1111,GH43567,Hamburger,GET,278598655,\n000001, ,Kunal,Bhyuo,Ramond,856 K. 98 Rd, , ,Tripura,AGT,INDIA,856987, ,S,S,S,8956,\666666
awk'{gsub(/]*>/,“”)}NF{$1=$1;print}file.xml
印度阿格特特里普拉98路856号,拉蒙德比尤库纳尔,GH43567,汉堡包,GET,278598655,n000001,邮编:856987,S,S,S,8956,666666
gsub
部分替换所有以
开头并以code>结尾的内容,因此删除eks。
NF
只需打印出包含数据的行,删除空行即可$1=$1
删除了前导空格和尾随空格。您可能需要查看xmlstarlet()。
xmlstarlet是一个命令行xml工具包。xmlstarlet允许您转换
将xml转换为pyx格式。
pyx本质上是一种扁平化的xml表示,每个标记一行。
然后,您可以使用grep、sed等来提取所需内容。您可能需要查看xmlstarlet()。 xmlstarlet是一个命令行xml工具包。xmlstarlet允许您转换 将xml转换为pyx格式。 pyx本质上是一种扁平化的xml表示,每个标记一行。
然后您可以使用grep、sed等提取您想要的内容。请您对上述答案进行解释。这将有助于我理解正在发生的事情。谢谢你的解释。但是,我有一个疑问,如果
中的所有内容都被删除了,它是否也会删除我们试图从xml中获取的字符串?不,正常的标记都标有start
和stop code>,就像这样
。在xml中,数据不应在
之内,并且数据不应包含
。请您对上述答案进行解释。这将有助于我理解正在发生的事情。谢谢你的解释。但是,我有一个疑问,如果
中的所有内容都被删除了,它是否也会删除我们试图从xml中获取的字符串?不,正常的标记都标有start
和stop code>,就像这样
。在xml中,数据不应在
内,并且数据不应包含