【发布时间】:2020-11-18 15:25:34
【问题描述】:
我有一个如下的 XML 文件
<?xml version="1.0" ?>
<coverage branch-rate="0" branches-covered="0" branches-valid="0" complexity="0" line-rate="0.7606" lines-covered="270" lines-valid="355" timestamp="1595999208833" version="5.2.1">
<!-- Generated by coverage.py: https://coverage.readthedocs.io -->
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
<sources>
<source>/home/lebanon/appt</source>
</sources>
<packages>
<package branch-rate="0" complexity="0" line-rate="1" name="application">
<classes>
<class branch-rate="0" complexity="0" filename="application/__init__.py" line-rate="1" name="__init__.py">
<methods/>
<lines>
<line hits="1" number="23"/>
</lines>
</class>
</classes>
</package>
</coverage>
我想检索标签内的线速值。 如何使用 grep 来实现?
【问题讨论】:
-
恕我直言,专家总是建议使用 xmlstarlet、xmlint 等工具来处理 xml 文件。因为他们很好地理解 xmls。所以请让我们知道您的系统中是否有这些工具可用?如果没有,你能得到它们吗?因为只有这样,我们才能得到答案,干杯。
-
另外,建议用户在 SO 上添加他们为解决自己的问题所做的努力,所以请在您的问题中添加相同的内容,然后让我们知道。
-
grep -oP '<coverage.*line-rate=\K"0.[0-9][0-9][0-9][0-9]"' coverage.xml我使用了这个命令,我得到输出“0.7606”。如何删除引号? -
见
man tr。它有一个删除字符的选项。