如何用bash命令替换Obsidian文件引用为对应文件内容?
解决Obsidian嵌入语法转Pandoc兼容内容的bash命令
可以用sed结合命令替换实现需求,具体命令如下:
sed -E 's/\!\[\[(.*)\]\]/$(cat "\1")/g' "a note.md" | bash
命令说明
sed -E 's/\!\[\[(.*)\]\]/$(cat "\1")/g' "a note.md":通过正则匹配![[文件名]]格式的Obsidian嵌入语法,将其替换为$(cat "文件名")的bash命令格式| bash:把sed处理后的内容交给bash执行,将命令替换成对应文件的实际内容
效果验证
执行命令后输出结果与预期完全一致:
Here is a description of an idea. Here is another idea related to it.
如果要直接对接Pandoc处理,只需继续追加管道即可:
sed -E 's/\!\[\[(.*)\]\]/$(cat "\1")/g' "a note.md" | bash | pandoc -o output.pdf
内容的提问来源于stack exchange,提问作者lillemets
相关产品推荐
相关产品推荐

