2012-04-25 4 views
9

Извините или будьте толстыми. Я искал высоко и низко, чтобы попытаться выяснить, как выполнять пакетный процесс pandoc. Я не могу, чтобы жизнь меня работала.пакетная обработка конверсий pandoc

Как преобразовать папку и вложенные папки, содержащие html-файлы, в уценку?

Я должен упомянуть, что я использую OS X 10.6.8

ответ

19

Вы можете применить любую команду через файлы в дереве каталогов с помощью find:

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

будет работать pandoc на все файлы с a .md суффикс, создавая файл с суффиксом .md.txt. (Вам понадобится скрипт-оболочка, если вы хотите получить суффикс .txt без .md или сделать уродливые вещи с вызовами подсетей.) {} в любом слове от -exec до конечного \; будет заменено именем файла.

+0

большое спасибо. Я предполагаю, что я могу заменить '\ *. Md' и' .txt' различные расширения, чтобы преобразовать нужные файлы. т.е. '\ *. html' и' .md'? – rev

+0

Да, поэтому я подробно рассказал о том, что происходит, поэтому вы можете более легко увидеть, какие части изменить, чтобы делать то, что вам нужно. – geekosaur

+0

Я не совсем понимаю следующее: «' {} 'в любом слове из' -exec' до завершающего '\;' будет заменено именем файла. " – rev

0

Я сделал Баш скрипт, который не будет работать рекурсивно, возможно, вы могли бы адаптировать его к вашим потребностям:

#!/bin/bash  
newFileSuffix=md # we will make all files into .md 

for file in $(ls ~/Sites/filesToMd); 
do 
    filename=${file%.html} # remove suffix 
    newname=$filename.$newFileSuffix # make the new filename 
# echo "$newname" # uncomment this line to test for your directory, before you break things 
    pandoc ~/Sites/filesToMd/$file -o $newname # perform pandoc operation on the file, 
                # --output to newname 


done 
# pandoc Catharsis.html -o test