У меня есть скрипт для изменения имен файлов файлов mht, но он не проходит через dirs и sub dirs. Я задал вопрос на местном форуме, и я получил ответ, что это решение:Bash скрипт для изменения имен файлов рекурсивно
find . -type f -name "*.mhtml" -o -type f -name "*.mht" | xargs -I item sh -c '{ echo item; echo item | sed "s/[:?|]//g"; }' | xargs -n2 mv
Но он генерирует ошибку. С некоторыми из моих экспериментов выясняется, что sh -c
разбивает имена файлов с пробелом, и это порождает ошибку. Как я могу это исправить?
#!/bin/bash
# renames.sh
# basic file renamer
for i in . *.mht
do
j=`echo $i | sed 's/|/ /g' | sed 's/:/ /g' | sed 's/?//g' | sed 's/"//g'`
mv "$i" "$j"
done
Что делать, если вы пробовали это: 'find. -type f \ (-name "* .mhtml" -o -name "* .mht" \) | xargs -I элемент sh -c '{echo \ "item \"; echo \ "item \" | sed "s/[:? |] // g"; } '| xargs -n2 mv' – lurker
генерирует аналогичную ошибку – user2420889