2011-11-25 22 views
11

星期五下午,我的大腦凍結了!使用grep在xml標籤中獲取文本

grep -E -m 1 -o "<title>(.*)</title>" myfile.rss 

回報

<title>Some title</title> 

如何我只是得到Some title

+1

擊不具有一個內置的功能來解析XML。您可以考慮使用PHP,Perl以適當的方式解析XML。然後獲得節點值將很容易 – ajreal

+0

那麼,這是完成任務的矯枉過正! – tdc

+0

據我所知,我們只想從已知佈局的xml中提取標題內容,而不是解析xml。對於解析xml'xmlstarlet'可能是有用的工具。 –

回答

21

管進一步通過,例如

sed -e 's,.*<title>\([^<]*\)</title>.*,\1,g' 
+0

謝謝! Brain thawing out ;-) – tdc

+0

+1,但請注意,使用'sed'解析XML(或HTML)通常不是一個好主意。只有在輸入已知且不會意外變化的情況下才能完成。對於任何從互聯網自動啜食的東西,都應該使用適當的解析器。 – Sorpigal

+0

@Sorpigal,我完全同意,詳情請參閱問題本身的評論。 –