2012-04-25 30 views
9

Rất tiếc hoặc bị dày. Tôi đã tìm kiếm cao và thấp để thử và tìm ra cách xử lý hàng loạt pandoc. Tôi không thể cho cuộc sống của tôi làm việc nó ra.chuyển đổi pandoc xử lý theo lô

Làm cách nào để chuyển đổi thư mục và thư mục lồng nhau có chứa tệp html để đánh dấu?

tôi nên đề cập đến mà tôi đang sử dụng os x 10.6.8

Trả lời

19

Bạn có thể áp dụng bất kỳ lệnh trên các tập tin trong một cây thư mục sử dụng find:

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

sẽ chạy pandoc trên tất cả các file với hậu tố .md, tạo tệp có hậu tố .md.txt. (Bạn sẽ cần một kịch bản trình bao bọc nếu bạn muốn nhận được hậu tố .txt mà không cần .md hoặc làm những điều xấu xí với các lời gọi vỏ bọc con.) {} bằng bất kỳ từ nào từ -exec đến chấm dứt \; sẽ được thay thế bằng tên tệp.

+0

cảm ơn nhiều. Tôi giả sử tôi có thể thay thế '\ *. Md' và' .txt' bằng các phần mở rộng khác nhau để chuyển đổi các tệp mong muốn. tức là '\ *. html' và' .md'? – rev

+0

Vâng, đó là lý do tại sao tôi đã nêu chi tiết những gì đang diễn ra, vì vậy bạn có thể thấy dễ dàng hơn các bộ phận cần thay đổi để thực hiện những gì bạn cần. – geekosaur

+0

Tôi không hoàn toàn hiểu những điều sau: "' {} 'trong bất kỳ từ nào từ' -exec' đến kết thúc '\;' sẽ được thay thế bằng tên tệp. " – rev

0

tôi đã thực hiện một kịch bản bash rằng sẽ không làm việc một cách đệ quy, có lẽ bạn có thể thích ứng với nhu cầu của bạn:

#!/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 
Các vấn đề liên quan