Я пытаюсь воссоздать структуру папок из источника в целевом местоположении и выполнить команду для каждого файла, найденного в процессе, используя BASH. На основании некоторой обратной связи и некоторых запросов я пытаюсь получить это решение для правильной работы. Сейчас он ломается, потому что в папках Windows есть каталоги с пробелами, которые он не находит.Batch filepath и команды файлов
Я смог заставить это работать после установки некоторых дополнительных функций для моего cygwin.
source='/cygdrive/z/austin1/QA/Platform QA/8.0.0/Test Cases'
target='/cygdrive/c/FullBashScripts'
# let ** be recursive
shopt -s globstar
for file in "$source"/**/*.restomatic; do
cd "${file%/test.restomatic}"
locationNew="$target${file#$source}"
mkdir -p "$(dirname "$target${file#$source}")"
sed -e 's/\\/\//g' test.restomatic | awk '{if ($1 ~ /^(LOAD|IMPORT)/) system("cat " $2); else print;}' | sed -e 's/\\/\//g' |awk '{if ($1 ~ /^(LOAD|IMPORT)/) system("cat " $2); else print;}' > $locationNew
done
Я сделал изменения в мой ответ, который должен заботиться о пространствах в именах файлов; попробуй. –