2

我正在尝试使用本机脚本将(及以下)中的每个.markdown文件转换为 html。但是,将 html 打印为粗壮,这意味着要转换为,我需要运行:。~/notes/Markdown.pl --html4tagsMarkdown.pltest.markdowntest.htmlMarkdown.pl --html4tags test.markdown > test.html

我一直在弄清楚如何将管道合并到递归find -execfind ... | xargs函数中。我想出的最好的是:

for i in `find ~/notes/ -type f -name "*.markdown"` ; do
  Markdown.pl --html4tags $i > ${i}.html ;
done

它成功地将每个.markdown文件转换为 html,但当然它看起来像test.markdown.html而不是test.html.

所以基本上,我需要做一些类似转换${i}.markdown成的事情${i}.html,但我不知道如何在函数中对其进行编码。谢谢你的帮助。

编辑:我想出了一种方法来修复上述脚本,使用basename(我刚刚发现):

for i in `find ~/notes/ -type f -name "*.markdown"` ; do
  Markdown.pl --html4tags $i > `basename $i .markdown`.html ;
done

这基本上将每个.markdown文件转换为 html,同时还剥离.markdown扩展名,然后添加.html扩展名。

我很想知道是否有更好的方法来做到这一点,例如,使用find -exec.

4

1 回答 1

1

繁荣!

find ~/notes/ -name '*.markdown' | while read line
do
    Markdown.pl --html4tags $line > ${line/.markdown/.html}
done
于 2012-05-26T15:34:55.577 回答