如何在Bash脚本中将Github Wiki格式链接转换为标准Markdown链接
GitHub Wiki 内部链接转换解决方案
你可以通过 GNU sed 单行命令实现转换需求,命令如下:
sed -E 's/\[\[([^]]+)\]\]/[\1](\1.htm)/g; :loop s/(\([^) ]*) /\1-/g; t loop' 输入文件.md > 输出文件.md
命令逻辑说明
- 第一部分规则
s/\[\[([^]]+)\]\]/[\1](\1.htm)/g:全局匹配所有被[[、]]包裹的链接内容,先将其转换为标准Markdown链接的基础格式,保留原链接文本作为显示内容和URL前缀,自动补充.htm后缀 - 第二部分循环规则
:loop s/(\([^) ]*) /\1-/g; t loop:循环匹配URL括号内的所有空格,逐个替换为横杠,直到括号内无空格为止
适配说明
如果是macOS系统,默认自带的BSD sed需使用调整后的命令:
sed -E -e 's/\[\[([^]]+)\]\]/[\1](\1.htm)/g' -e ':loop' -e 's/(\([^) ]*) /\1-/g' -e 't loop' 输入文件.md > 输出文件.md
效果示例
输入内容:
[[An example of another page]] [[Hello World 测试页面]]
转换后输出:
[An example of another page](An-example-of-another-page.htm) [Hello World 测试页面](Hello-World-测试页面.htm)
内容的提问来源于stack exchange,提问作者Ed Rogers
相关产品推荐
相关产品推荐

