我有一個HTML文件,並且想要提取<li>
和</li>
之間的文本標籤。當然也有一百萬的方式做到這一點,但我想這將是獲得有用的多爲簡單的shell命令這樣的習慣:awk/etc:從文件中提取匹配
awk '/<li[^>]+><a[^>]+>([^>]+)<\/a>/m' cities.html
的問題是,這個打印一切而我只是想在括號中打印匹配 - ([^>]+)
- awk不支持這個,或者我無能。後者似乎更有可能。如果您想將提供的正則表達式應用於文件並僅提取指定的匹配項,那麼您將如何執行?我已經知道了其他六種方式,但我不想讓awk
贏得這一輪;)
編輯:數據結構不好,所以使用位置匹配($1, $2, etc.
)是一個不行。
至於你的第二點,是的,在我的描述和模式中,我有點矛盾。我可以向你保證模式完全符合我的要求。我並不知道awk沒有做多線。 也許它不是正確的工具;我可以在4行python中提取文本,只需使用一個命令方法就可以更方便地使用單個命令來提取它們並完成它。當然,我花了一個小時試圖找出這個命令,所以......;) – tdavis 2009-06-12 02:05:33