我有一个从 wiki 导出的页面,我想使用 bash 找到该页面上的所有链接。该页面上的所有链接都在表单中[wiki:<page_name>]
。我有一个脚本:
...
# 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`
....
但是,当出现一个包含多个[wiki:
文本的 grep 结果时,它只会拉出最后一个而不是其他任何一个。例如,如果$search
是:
在开始配置之前,必须安装所有必需的库才能被 Cmake 检测到。如果您错过了这一步,请参阅 [wiki:CT/Checklist/Libraries"Libr 通过按 [t] 您可以切换到具有更多详细信息的高级模式屏幕。这 5 个页面可用 [wiki:CT/Checklist/Cmake/advanced_mode此处]。要获取有关 ea 的信息 - '''安装 Cantera''':如果尚未正确安装 Cantera 或者您没有获取安装文件 '''~/setup_cantera''',您应该会收到以下信息消息。请参阅 [wiki:CT/FormulationCantera “Cantera 安装”] 页面来解决此问题。如果您计划使用内置传输、热力学和化学,您可以将 Cantera 选项设置为关闭。
然后它只会返回CT/FormulationCantera
并且不会给我任何其他链接。我知道这是由于使用cut
,所以我需要更换$uniquepages
线路。
有人对bash有任何建议吗?如果需要,它可以使用 sed 或 perl,但如果可能的话,我希望单行来提取页面名称列表。