powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / преобразование имен файлов к нижнему регистру
10 сообщений из 10, страница 1 из 1
преобразование имен файлов к нижнему регистру
    #34395386
0ri0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть папка, содержащая несколько сот файлов, имена которых заданы в верхнем регистре (заглавными буквами). Нужно переименовать эти файлы в нижний регистр. (Например, TEST1.SH -> test1.sh)
Есть у кого-нибудь скрипт, выполняющий данную операцию?
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #34395504
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
входим в тот каталог

выполняем

for i in *; do new=`echo $i| tr [A-Z] [a-z]` && mv $i $new; done
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #34395562
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот еще вариант :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#!/bin/sh
dir=./ 1  # папка с файлами
[ -s rename.sh ] && rm -f rename.sh
find $dir -type f | while read f; do
nf=`gawk ' BEGIN { print tolower("'$f'");}';`
[ "$f" != "$nf" ] && echo mv -f $f $nf | tee -a rename.sh
done

и в поддиректориях ищет тоже
после нужно просмотреть сформированный файл rename.sh и если все ок
сделать sh rename.sh
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #34396277
0ri0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, все получилось!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
преобразование имен файлов к нижнему регистру
    #37923846
Фотография rhps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842
Код: sql
1.
2.
3.
4.
5.
6.
7.
#!/bin/sh
dir=./1 # папка с файлами
[ -s rename.sh ] && rm -f rename.sh
find $dir -type f | while read f; do
nf=`gawk ' BEGIN { print tolower("'$f'");}';`
[ "$f" != "$nf" ] && echo mv -f $f $nf | tee -a rename.sh
done



файл создался, но не отработал...(((
пишет "bash: gawk: command not found"
в директории очень много подкатологов.
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #37923881
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rhpsпишет "bash: gawk: command not found"Очевидно, gawk не установлен. Вообще то, awk должен так же отработать. Хотя, оно может от ОС зависеть. Если имена файлов только в латинице, тогда можно использовать простую конструкцию
Код: sql
1.
tr '[:upper:]' '[:lower:]'
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #37925948
Фотография rhps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

имена файлов только в латинице.

То есть эту строку nf=`gawk ' BEGIN { print tolower("'$f'");}';`
мне надо заменить на nf = tr '[:upper:]' '[:lower:]' ?
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #37926007
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, должно сработать. Пробелов нет в именах файлов? А то в коде кавычек не хватает.
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #37926026
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорь, прогнал. Синтаксис другой, конечно )
...
Рейтинг: 0 / 0
преобразование имен файлов к нижнему регистру
    #37992433
X_a_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Помогите найти ошибку. Мной был реализован сценарий по изменению регистра, но проблема в том, что он работает непосредственно в директории , где происходит изменение. Плюс ко всему выдает следующее сообщение: “mv: cannot stat `/home/user/pr / /home/user/pr/file: No such file or directory”.

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
#!/bin/bash
#Comment
#Chreg - Changes the character case file names in derectory.
#
case $1 in
     -l) find -H * $2 | while read name
            do
             then
               newname=`echo $name | tr [A-Z] [a-z]`
               mv $2/$name $2/$newname
            done
         ;;
     -u) find -H * $2 | while read name
            do
             then
               newname=`echo $name | tr [a-z] [A-Z]`
               mv $2/$name $2/$newname
            done
         ;;
     -h) echo "Useg: chreg [OPTION] [DIRECTORY]"
         echo "Changes the character case file names in derectory"
         echo "-l Transfer from uppercase to lowercase case"
         echo "-u Translated from the lower to upper case"
         echo "-h Display this help and exit"
    ;;
      *) echo "Try cht -h"
    ;;
esac
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / преобразование имен файлов к нижнему регистру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]