これらのコマンドを1つにまとめるにはどうすればよいですか?

これらのコマンドを1つにまとめるにはどうすればよいですか?

これが私がしたいことです:

HTMLファイルフォルダをMarkdownに変換し、YAMLに変換して各HTMLファイルのXMLメタデータをコピーします。

調査した結果、次のコマンドが見つかりました。

  1. find . -name \*.md -type f -exec pandoc -o {}.txt {} \;

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

  3. pandoc -f html -t markdown -s input.html -o output.md

    • これはここで見つかります。以下は、明らかにメタデータをコピーしてYAMLに変換するpandocコマンドです。ただし、ファイルフォルダでは開いたときにのみ機能しません。

私にとって必要なのは、変換されたファイルに「.md」を提供するpandocを使用するコマンドです。 .html.mdの代わりに拡張子を使用し、XMLメタデータをYAMLに変換します。これらすべては、これら3つのコマンドを使用して実行できます。これを1つのコマンドにまとめるだけです。

ベストアンサー1

必要なのはxargsです。私はpandocに慣れていませんが、次のように動作するはずです。

$ find . -name \*.html -type f | sed 's/\.html$//' | xargs -I {} pandoc -f html -t markdown -s -o "{}.md" "{}.html"

検索を使用して、選択したディレクトリ(およびすべてのサブディレクトリ)にあるすべての.htmlファイルを一覧表示します。これらはsedにパイプされて ".html"拡張子を削除し、xargsにパイプしてそれをpandocに1つずつ供給し(構文を正しく使用する場合)、各名前を取得します({}に置き換えられます)。 )、各htmlファイルをソースとして使用し、ソースファイルと同じディレクトリに拡張子がmdの新しいファイルとして出力されます。

最終的には、元のhtmlファイルと同じ数の一致するmdファイルが同じディレクトリに存在する必要があります。

おすすめ記事