2014-02-13 53 views
0

如何篩選"<torrent:magnetURI><![CDATA[""]]></torrent:magnetURI>"中的任何內容,以便使用grep輸出字符串「EXAMPLE」?如何使用grep在內部過濾「[」和「]」?

<torrent:magnetURI><![CDATA[EXAMPLE]]></torrent:magnetURI> 

我想獲取網絡中的所有磁鐵網址並將它們添加到傳輸中。

for url in $(wget -q -O- "http://sample.com/rss.xml" | grep -o '<torrent:magnetURI><![CDATA["[^"]*' | grep -o '[^>]*$'); do 
transmission-remote localhost:9091 -a "$url"; 
done 

回答

1

您可以使用:

$ grep -Po '(?<=<torrent:magnetURI><!\[CDATA\[)\w*(?=\]\]>)' file 
EXAMPLE 

注意它的背後使用的外觀和期待(?<=before)\w*(?=after),也逃避[

(?<=<torrent:magnetURI><!\[CDATA\[)\w*(?=\]\]>) 
    ------------------------------- --- ----- 
     string to find before  | string after 
          string matched 
+0

當我使用的代碼我得到一個錯誤'grep:無效選項 - P'。 – user3190544

+0

你在unix嗎? – fedorqui