2012-04-25 14 views
9

Przepraszam lub jestem gęsty. Przeszukałem wysokie i niskie, aby wypróbować i przetworzyć proces wsadowy pandoc. Nie mogę, aby moje życie to wyszło.przetwarzanie wsadowe konwersji pandoc

Jak przekonwertować folder i zagnieżdżone foldery zawierające pliki html na przecenę?

należy wspomnieć, że używam OS X 10.6.8

Odpowiedz

19

Można stosować dowolne polecenie poprzek plików w drzewie katalogów używając find:

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

byłoby pandoc na temat wszystkich plików z przyrostek .md, tworząc plik z przyrostkiem .md.txt. (Będziesz potrzebował skryptu opakowującego, jeśli chcesz uzyskać przyrostek .txt bez .md lub zrobić brzydkie rzeczy z wywołaniami podpowłok.) {} w dowolnym słowie z -exec do kończącego się \; zostanie zastąpiony przez nazwę pliku.

+0

wielkie dzięki. Zakładam, że mogę zamienić '\ *. Md' i' .txt' na różne rozszerzenia, aby przekonwertować żądane pliki. tj. '\ *. html' i' .md'? – rev

+0

Tak, dlatego szczegółowo opisałem, co się dzieje, aby łatwiej było zobaczyć, które części zmienić, aby zrobić to, czego potrzebujesz. – geekosaur

+0

Nie do końca rozumiem, co następuje: "' {} 'w dowolnym słowie z" -exec "do kończącego' \; 'zostanie zastąpione przez nazwę pliku." – rev

0

zrobiłem skrypt bash, który nie działa rekursywnie, może można dostosować go do swoich potrzeb:

#!/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