Bash
如何將這些命令合併為一個?
這就是我想要做的:
將 HTML 文件的文件夾轉換為 markdown,同時通過轉換為 YAML 來複製每個 HTML 文件的 XML 元數據。
我進行了研究並遇到了以下命令:
find . -name \*.md -type f -exec pandoc -o {}.txt {} \;
- 這是在這裡找到的,它是一個可以工作並使用 pandoc 的命令,但是文件副檔名是“.html.md”而不是“.md”
find / -name "*.md" -type f -exec sh -c 'markdown "${0}" > "${0%.md}.html"' {} \;
- 這是在這裡找到的。這顯然帶走了“.html.md”並變成了“.md”,但它不使用pandoc。
pandoc -f html -t markdown -s input.html -o output.md
- 這是在這裡找到的。這是顯然複製元數據並將其轉換為 YAML 的 pandoc 命令,但它不適用於文件文件夾,僅在打開時
我需要的是一個使用 pandoc 的命令,為轉換後的文件提供“.md”。副檔名而不是 .html.md,並將 XML 元數據轉換為 YAML。所有這些都可以使用這三個命令來實現,只需將它們合併為一個命令即可。
你需要的是 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;pandoc(如果我正確使用了語法)然後獲取每個名稱(替換為 {}),使用每個 html 文件作為源並輸出到與源文件位於同一目錄中的具有 md 副檔名的新文件。
您最終應該在同一目錄中獲得原始 html 文件和相同數量的匹配 md 文件。