Рекурсивная замена пробелов на подчеркивания в именах файлов и каталогов: различия между версиями

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Строка 3: Строка 3:
----
----
<source lang="bash">
<source lang="bash">
find path1 path2 -type f | while read full  # find - ищет файлы в указанном пути, while - осуществляет циклическое действие
find path1 path2 -type f | while read full  # find - ищет файлы в указанном пути, while - осуществляет
do
do                                          # циклическое действие
name=${full##*/}                            # вырезаем имя файла, функция убирает все до последнего слеша "/", оставляя только имя файла
name=${full##*/}                            # вырезаем имя файла, функция убирает все до последнего слеша "/",
mv -- "${full}" "${full%/*}/${name// /_}"    # перемещаем старый файл (полное имя которого в переменной full) в новый, образованный  
mv -- "${full}" "${full%/*}/${name// /_}"    # оставляя только имя файла
                                             # именем файла (переменная name, в которой сделана замена пробела на _) и путем
done                                        # перемещаем старый файл (полное имя которого в переменной full) в
                                             # к нему (получен методом обрезания полного имени файла до первого слеша)
                                            # новый, образованный  
done
                                             # именем файла (переменная name, в которой сделана замена пробела на _)
                                            # и путем
                                             # к нему (получен методом обрезания полного имени файла до первого
                                            # леша)
</source>
</source>
----
----                              


Скрипт для работы с директориями в процессе разработки.
Скрипт для работы с директориями в процессе разработки.


[[Category:Sed]][[Category:Bash-скрипт]][[Категория:Скрипт]]
[[Category:Sed]][[Category:Bash-скрипт]][[Категория:Скрипт]]

Версия 17:12, 9 апреля 2009

Скрипт позволяющий заменять пробелы на подчеркивание в именах файлов.


find path1 path2 -type f | while read full   # find - ищет файлы в указанном пути, while - осуществляет
do                                           # циклическое действие
name=${full##*/}                             # вырезаем имя файла, функция убирает все до последнего слеша "/",
mv -- "${full}" "${full%/*}/${name// /_}"    # оставляя только имя файла
done                                         # перемещаем старый файл (полное имя которого в переменной full) в
                                             # новый, образованный 
                                             # именем файла (переменная name, в которой сделана замена пробела на _)
                                             # и путем
                                             # к нему (получен методом обрезания полного имени файла до первого
                                             # леша)

Скрипт для работы с директориями в процессе разработки.