使用sed从XML文件中删除节点和数据

使用sed从XML文件中删除节点和数据,xml,regex,sed,Xml,Regex,Sed,我正在尝试使用sed清理XML文件 我需要删除所有123.123 我一直在尝试使用此命令,但没有成功: sed 's/(<DistanceMeters>)[.]*?(<\/DistanceMeters>)/ /g' file.txc sed的/()[.]*?()///g'file.txc 示例节点: <Trackpoint><Time>2014-02-12T18:18:49+11:00</Time> <Position>

我正在尝试使用sed清理XML文件

我需要删除所有
123.123

我一直在尝试使用此命令,但没有成功:

sed 's/(<DistanceMeters>)[.]*?(<\/DistanceMeters>)/ /g' file.txc
sed的/()[.]*?()///g'file.txc
示例节点:

<Trackpoint><Time>2014-02-12T18:18:49+11:00</Time>
<Position><LatitudeDegrees>35.209656</LatitudeDegrees><LongitudeDegrees>28.99924</LongitudeDegrees></Position>
<AltitudeMeters>586.99994</AltitudeMeters>
<DistanceMeters>148.30713</DistanceMeters>
<Cadence>4</Cadence>
<Extensions><TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2" CadenceSensor="Bike"><Speed>0.043145742</Speed></TPX></Extensions></Trackpoint>
2014-02-12T18:18:49+11:00
35.20965628.99924
586.99994
148.30713
4.
0.043145742
为了让事情变得更加混乱,源文件都在一行上


谢谢。

如果
测距仪
在一行中,只需执行以下操作:

awk '!/DistanceMeters/' file
<Trackpoint><Time>2014-02-12T18:18:49+11:00</Time>
<Position><LatitudeDegrees>35.209656</LatitudeDegrees><LongitudeDegrees>28.99924</LongitudeDegrees></Position>
<AltitudeMeters>586.99994</AltitudeMeters>
<Cadence>4</Cadence>
<Extensions><TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2" CadenceSensor="Bike"><Speed>0.043145742</Speed></TPX></Extensions></Trackpoint>
这两者都不是贪婪的,因此它不会破坏多次出现
块的行,而不是使用贪婪的
*

awk '{sub(/<DistanceMeters>[^>]*>/,x)}8' file
sed 's/<DistanceMeters>[^>]*>//g' file