Я хочу рекурсивно преобразовать все файлы уценки под ./src/
в html:
#!/bin/bash
function do_recursive_pandoc {
local markdown_src_file_extension=\*.markdown
local markdown_src_path="$1"
local html_output_path="$2"
mkdir "$html_output_path" 2>/dev/null
for i in $(find $markdown_src_path -name $markdown_src_file_extension 2>/dev/null | cut --delimiter='/' --fields=2- )
do
mkdir "$html_output_path"/$(dirname "$i") 2>/dev/null
pandoc -rmarkdown -whtml "$markdown_src_path"/"$i" --output="$html_output_path"/"$i".html
done
}
do_recursive_pandoc "src" "output"
Но если у меня есть место в путях к файлам или именах, bash будет считать их несколькими элементами в цикле for
, например, если у меня есть:
./src/dir 1/foo.markdown
этот скрипт создаст каталог ./output/1
вместо ./output/dir 1/
и попытается преобразовать ./src/dir
и ./src/1/foo.markdown
вместо ./src/dir 1/foo.markdown
Как я могу это исправить?
find
: используйте его флаг-exec
или используйте подстановочные знаки. - person gniourf_gniourf   schedule 05.02.2015