(Linux) 我怎样才能 grep 这个? (XML格式)

(Linux) How can i grep this? (XML format)

<host city="Santa Rosa" country="USA" hostnames="50-0-143-139.dsl.static.sonic.net" ip="50.0.143.139" latitude="38.3928" longitude="-122.7507" port="80" updated="30.01.2015"><data>HTTP/1.0 200 OK
    Date: Fri, 30 Jan 2015 00:15:54 GMT
    Server: Apache/2.2.22 (Ubuntu)
    X-Powered-By: PHP/5.3.10-1ubuntu3.9
    Set-Cookie: PHPSESSID=5vbu0vva1rvdaqvkk12kk2gjc4; path=/
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: _pmxi_session=%7C%7C%7C%7C; path=/
    X-Pingback: http://www.rasputinmusic.com/xmlrpc.php
    Link: &lt;http://wp.me/18fQM&gt;; rel=shortlink
    Vary: Accept-Encoding
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=UTF-8

基本上我想要的只是 X-Pingback 中的值,在本例中为“http://www.rasputinmusic.com/xmlrpc.php

我该怎么做?

我认为 grep 不是最好的方法;我建议使用 awk。如果你的数据在text.xml,试试:

awk '/X-Pingback: /{print $NF}' text.xml

这将搜索以“X-Pingback:”开头的行,然后打印这些行的最后一个字段。可以使用重定向元字符 > 将结果重定向到文件。例如:

awk '/X-Pingback: /{print $NF}' text.xml > filtered.txt