2012-04-25 7 views
9

Lo siento o soy grueso. He buscado alto y bajo para intentar averiguar cómo procesar por lotes pandoc. No puedo por la vida de mí resolverlo.procesamiento por lotes conversiones de pandoc

¿Cómo convierto una carpeta y las carpetas anidadas que contienen archivos html en un marcado?

Debo mencionar que estoy usando OS X 10.6.8

Respuesta

19

Se puede aplicar cualquier comando a través de los archivos en un árbol de directorios mediante find:

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

iría pandoc en todos los archivos con un sufijo .md, creando un archivo con un sufijo .md.txt. (Necesitará una secuencia de comandos envoltorio si desea obtener un sufijo .txt sin .md, o hacer cosas feas con invocaciones de subshell.) {} en cualquier palabra de -exec a la terminación \; se reemplazará por el nombre del archivo.

+0

muchas gracias. Supongo que puedo reemplazar '\ *. Md' y' .txt' con diferentes extensiones para convertir los archivos deseados. es decir, '\ *. html' y' .md'? – rev

+0

Sí, es por eso que detallé lo que estaba sucediendo, para que pudiera ver más fácilmente qué partes cambiar para hacer lo que necesita. – geekosaur

+0

No entiendo muy bien lo siguiente: "' {} 'en cualquier palabra de' -exec' a la terminación '\;' será reemplazada por el nombre del archivo. " – rev

0

Hice un script bash que no funcionaría de forma recursiva, tal vez usted podría adaptarlo a sus necesidades:

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