Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Bash переименовать файлы
цитата
13/04/11 в 06:36
 San_Tehnik
Подскажите, пожалуйста, как в баше переименовать файлы с определенным именем на заданное. Файлы находятся в разных папках.

Вообщем нужно в папке catalog которая в свою очередь содержит множество других папок, найти все файлы с именем file.ext переименовать в refile2.ext


update

И еще... В этой же папке и вложенным в нее нужно пройтись по всемфайлам с расширением html и заменить в них текст test.html на first.html.

Всем признательность и плюс в репутацию icon_cool.gif
цитата
16/04/11 в 23:37
 Soze.Kaizer
San_Tehnik писал:

Вообщем нужно в папке catalog которая в свою очередь содержит множество других папок, найти все файлы с именем file.ext переименовать в refile2.ext


for file in $(find /catalog -type f -name 'file.ext'); do mv "$file" "$(echo $file|sed 's/file.ext/refile2.ext/')"; done

San_Tehnik писал:

И еще... В этой же папке и вложенным в нее нужно пройтись по всемфайлам с расширением html и заменить в них текст test.html на first.html.


find /catalog -type f -name '*.html' -exec sed -i 's/test.html/first.html/g' "{}" \;


/catalog - имя твоей папки. Остальное, надеюсь, понятно.
Все операции отрабатываются рекурсивно (изменения затронут все вложенные папки), как ты и просил. Пользуйся на здоровье icon_wink.gif
цитата
16/04/11 в 23:58
 San_Tehnik
Soze.Kaizer: Спасибо smail54.gif


Эта страница в полной версии