(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: <http://wp.me/18fQM>; 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
<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: <http://wp.me/18fQM>; 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