Я хочу найти все файлы .docx и добавить к ним строку. Это мой текущий код, в котором есть небольшая ошибка
find -name '*.docx -execdir mv {} {}$string \;
Файлы переименованы, но строка добавляется, например, filename.docx_string, а не так filename_string.docx
.
Это выполнит трюк и спустится в подкаталоги.
find ./ -name "*.docx" -print | while read i; do mv "$i" `echo "$i" | sed -e 's/\.docx/_stringhere\.docx/'`; done
Часть sed -e
выполнит regex-замену для .docx
.
Bash 4
shopt -s globstar
for file in **/*.docx
do
echo mv "$file" "${file%.docx}${string}.docx"
done