如何使用grep从xml文件中提取值

如何使用grep从xml文件中提取值,xml,bash,sed,grep,Xml,Bash,Sed,Grep,我有一个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=&

我有一个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实现这一点?

您不应该使用grep解析xml(尽管您可以),因此使用
xmllint
可以做到这一点

xmllint --xpath '/coverage/@line-rate' file.xml

IMHO专家总是建议使用xmlstarlet、xmlint等工具来处理xml文件。因为他们非常理解XML。因此,请务必让我们知道您的系统中是否有这些可用的工具?如果没有,你能帮我弄到吗?因为根据这一点,我们可能会收到答案,干杯。此外,建议用户添加他们为解决自己的问题所付出的努力,因此请在您的问题中添加同样的努力,然后让我们知道。
grep-oP'参见
man tr
。它有一个删除字符的选项。