首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Markdown.pl批量转换Markdown文件

使用Markdown.pl批量转换Markdown文件
EN

Stack Overflow用户
提问于 2019-12-28 07:46:43
回答 3查看 117关注 0票数 4

引用以前的answer,但在转换我的.md文件文件夹时仍有困难:

代码语言:javascript
复制
for i in src/*.md; do perl markdown/Markdown.pl --html4tags $i > output/${i%.*}.html; done; 

不幸的是(对于我的测试文件“index.md”)它抛出了错误:

line 11: output/src/index.html: No such file or directory

我不确定如何让它直接输出到" output /index.html“。

有什么想法吗?(我对使用像pandoc这样的解决方案不感兴趣,只是想在bash中做到这一点)

EN

回答 3

Stack Overflow用户

发布于 2019-12-28 07:59:48

src/*.md的扩展将产生全部以src/开头的元素。您可以使用dirname删除文件的路径,只生成文件名sans目录。

由于您使用${ variable %match}替换模式将.md替换为.html,因此创建一个新变量(这里是$j )来保存basename的结果可能是最简单的。

代码语言:javascript
复制
for i in src/*.md; do j="$(basename $i)"; perl markdown/Markdown.pl --html4tags $i > output/${j%.*}.html; done; 
票数 1
EN

Stack Overflow用户

发布于 2019-12-28 17:01:16

该错误消息表示,相对于执行命令的工作目录,目录output/src不存在。您可以执行以下操作

代码语言:javascript
复制
mkdir -p output/src; for i in ....
票数 1
EN

Stack Overflow用户

发布于 2019-12-30 20:50:47

你可以避免for循环,利用现代的多核CPU,提前测试它会做什么,而不需要实际做任何事情,并像这样使用GNU Parallel并行完成所有事情:

代码语言:javascript
复制
parallel --dry-run perl markdown/Markdown.pl --html4tags {} \> output/{/.}.html ::: src/*md

示例输出

代码语言:javascript
复制
perl markdown/Markdown.pl --html4tags src/a.md > output/a.html

如果这看起来是正确的,那么再次运行它,但是没有--dry-run来真正地运行它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59507038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档