Xml 嵌套循环中包含的SED命令

Xml 嵌套循环中包含的SED命令,xml,regex,sed,Xml,Regex,Sed,我有一个场景,其中一个文件包含xml标记。有一个类似于的标记,在它下面有另一个名为的标记,在它下面有另一个标记。我需要计算每个标记中存在的标记的数量,并且我必须显示标记中参数的值和标记的值 比如说, FILENAME.xml <abcd...... xyz="value1"> <efgh="value2"> <hijk> .... </hijk> ..

我有一个场景,其中一个文件包含xml标记。有一个类似于
的标记,在它下面有另一个名为
的标记,在它下面有另一个标记
。我需要计算每个
标记中存在的
标记的数量,并且我必须显示
标记中参数的值和
标记的值

比如说,

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"