我有一個從wiki導出的頁面,我想用bash找到該頁面上的所有鏈接。該頁面上的所有鏈接均採用的形式。我有一個腳本,做:在bash中提取多個子字符串
...
# First search for the links to the pages
search=`grep '\[wiki:' pages/*`
# Check is our search turned up anything
if [ -n "$search" ]; then
# Now, we want to cut out the page name and find unique listings
uniquePages=`echo "$search" | cut -d'[' -f 2 | cut -d']' -f 1 | cut -d':' -f2 | cut -d' ' -f 1 | sort -u`
....
然而,當出現一個grep的結果與它的多個[wiki:
文本,只拉了最後一個,而不是任何其他人。例如,如果$search
是:
在開始配置之前,必須安裝所有必需的庫以供Cmake檢測。如果您錯過了這一步,請參閱[wiki:CT/Checklist/Libraries] Libr通過按[t],您可以切換到高級模式屏幕,其中有更多詳細信息。這裏]。獲取關於ea的信息 - '''安裝Cantera''':如果Cantera沒有正確安裝,或者您沒有找到安裝文件'''〜/ setup_cantera'',您應該會收到以下內容消息請參閱[維基:CT/FormulationCantera「坎特拉安裝」]。解決這個問題的網頁,如果您打算使用內置的運輸,熱力學和化學您可以設置坎特拉選項爲關閉
。那麼它只返回CT/FormulationCantera
,它不會給我任何其他的鏈接。我知道這是由於使用cut
,所以我需要替換$uniquepages
一行。
有沒有人在bash中有任何建議?如果需要的話,它可以使用sed或perl,但是我希望單行提取一個頁面名稱列表,如果可能的話。
美麗,這是做到了。唯一的改變是在排序之前添加一個'cut -d''-f1',以防以'[wiki:]'的形式存在鏈接,這個問題我沒有說過,但樣本數據在那裏。謝謝! –
tpg2114
2012-08-16 14:52:58
@ tpg2114你可以追加另一個sed命令而不是'cut':''s /。* //''。 – rush 2012-08-16 14:55:39