Bash

如何將這些命令合併為一個?

  • December 23, 2018

這就是我想要做的:

將 HTML 文件的文件夾轉換為 markdown,同時通過轉換為 YAML 來複製每個 HTML 文件的 XML 元數據。

我進行了研究並遇到了以下命令:

  1. find . -name \*.md -type f -exec pandoc -o {}.txt {} \;
  • 這是在這裡找到的,它是一個可以工作並使用 pandoc 的命令,但是文件副檔名是“.html.md”而不是“.md”
  1. find / -name "*.md" -type f -exec sh -c 'markdown "${0}" > "${0%.md}.html"' {} \;
  1. 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 文件。

引用自:https://unix.stackexchange.com/questions/190082