我使用這個命令行得到了包含各種其它標記的HTML文件中的特定行,鏈接等:如何將一個模式的最後出現匹配一行字符串
cat index.html | grep -m1 -oE '<a href="(.*?)" rel="sample"[\S\s]*.*</dd>'
它輸出,我想這行:
<a href="http://example.com/something/one/" rel="sample" >Foo</a> <a href="http://example.com/something/two/" rel="sample" >Bar</a></dd>
但我想只捕獲something/two
(的最後 URL路徑),考慮到:
- 事先不知道URL(這是一個處理多個html文件的腳本)
該行有時可能只包含一個URL,
<a href="http://example.com/something/one/" rel="sample" >Foo</a></dd>
在這種情況下,我想只有
something/one
獲得儘可能在這種情況下,最後之一。
我該怎麼做?
如果某個'a'標籤被換行符打斷,那麼它會在兩個連續的行上同時出現? – RomanPerekhrest
@RomanPerekhrest是不是'[\ S \ s] *'掩飾? – george
不,我想,他想要定義一行中有多少個網址。如果存在多個URL - 捕獲查詢字符串,如果一行只包含一個url - 只捕獲查詢字符串的最後一部分,即'/ one /' – RomanPerekhrest