findコマンドを使用してマークダウンファイルをhtmlに変換する

findコマンドを使用してマークダウンファイルをhtmlに変換する

私のハードドライブに拡張機能があるとしましょう.md

.htmlこれらのファイルをすべてスルーfindとオプションに変換したいと思います-exec

Markdownファイルをhtmlに変換するコマンドは次のとおりです。

markdown readme.md > readme.html

私は次のようなものを使用しようとしています:

find / -name "*.md" -type f -exec markdown {} > {}.html \;

もちろん上記の方法は通じません。それではfind、andだけを使用してこれをどのように実行できますかexec

ベストアンサー1

>含まれる構文は次のようにシェル特殊文字であるため、引用符で囲む必要があります。

find / -name "*.md" -type f -exec sh -c 'markdown "$0" > "$0.html"' {} \;

これによりファイル名も変更されるので、foo.html代わりに次のように終了しますfoo.md.html

find / -name "*.md" -type f -exec sh -c 'markdown "${0}" > "${0%.md}.html"' {} \;

おすすめ記事