Xml 嵌套循环中包含的SED命令
我有一个场景,其中一个文件包含xml标记。有一个类似于Xml 嵌套循环中包含的SED命令,xml,regex,sed,Xml,Regex,Sed,我有一个场景,其中一个文件包含xml标记。有一个类似于的标记,在它下面有另一个名为的标记,在它下面有另一个标记。我需要计算每个标记中存在的标记的数量,并且我必须显示标记中参数的值和标记的值 比如说, FILENAME.xml <abcd...... xyz="value1"> <efgh="value2"> <hijk> .... </hijk> ..
的标记,在它下面有另一个名为
的标记,在它下面有另一个标记
。我需要计算每个
标记中存在的
标记的数量,并且我必须显示
标记中参数的值和
标记的值
比如说,
FILENAME.xml
<abcd...... xyz="value1">
<efgh="value2">
<hijk>
....
</hijk>
....
</efgh>
<efgh="value3">
....
</efgh>
....
</abcd>
<abcd...... xyz="value4">
.......
</abcd>
......
等等
我想我可以使用3个内部循环和sed命令进行迭代。我说得对吗?
即使我是,我也需要帮助。
请帮忙
awk -F[\ \<\>] '/xyz=/{print $(NF-1)} ; /efgh=/{print $(NF-1)} /hijk/{count++} /\/efgh/{print "no. of hjkl tags " count; count=0}' sam1
-F[\\]
将字段分隔符设置为
或
(空格)
/xyz=/{print$(NF-1)}
选择带有xyz
的行并打印param=“paramvalue”
/hijk/{count++}
当出现hijk
标记时,递增计数器,count
/\/efgh/{print“no.of hjkl tags”count;count=0}
打印并重置计数器,count
一旦结束标记
出现。不要为此使用sed,awk在这种情况下功能更强(sed无法计数,…)您能为此实例提供一个示例吗?wt这是否表示$(NF-1)??NF
是字段或列的编号,$(NF-1)将是匹配param=“value”
xyz="value1"
efgh="value2"
no. of hijk tags
....
xyz="valueN"
efgh="valueN"
no. of hijk tags
....
awk -F[\ \<\>] '/xyz=/{print $(NF-1)} ; /efgh=/{print $(NF-1)} /hijk/{count++} /\/efgh/{print "no. of hjkl tags " count; count=0}' sam1
xyz="value1"
efgh="value2"
no. of hjkl tags 2
efgh="value3"
no. of hjkl tags 0
xyz="value4"