使用linux实用程序从文件中提取正则表达式。在单独的行上打印每个匹配

时间:2012-09-14 17:39:35

标签: xml regex linux sed awk

我正在尝试使用常规表达式从文件中提取值。

我有2个xml文件。每个热点由许多热点组成,这些热点具有XY,(坐标)属性,如:

 <HOTSPOT ID="476" NAME="19.328" MEDIATYPE="url" MEDIA="/flash/hiddenHotspot.png" X="1427" Y="1989" WIDTH="280" HEIGHT="280" ZOOM="83" XSCALE="300" YSCALE="300" URL="/archive/manuscripts/1/decode?detail=476&amp;page=0" URLTARGET="_self" ROLLOVER="0" CAPTION="328" TOOLTIP="">
    <TOOLTIP>&lt;b&gt;19.328&lt;/b&gt;.&lt;br&gt;&lt;p class="poem1"&gt;In the Year 10 House, on the Day 11 Monkey,&lt;/p&gt;</TOOLTIP>
  </HOTSPOT>

我试图从文件中只提取X值。我从grep开始,但它返回完整的行。我的正则表达式只是/X="([0-9]+)"/。我在ubuntu 12.04。我确信其中一个内置实用程序可以提供帮助,但我无法找到哪一个。

有没有办法只使用linux实用程序打印到我的正则表达式的匹配?每场比赛应该分开吗?有人可以指点我正确的方向吗? TY。

1 个答案:

答案 0 :(得分:1)

grep -o与正则表达式(?<=\bX=")([^"]+)(?=")

一起使用