Книга: Искусство программирования на языке сценариев командной оболочки
Пример 12-15. lowercase: Изменение имен всех файлов в текущем каталоге в нижний регистр.
Пример 12-15. lowercase: Изменение имен всех файлов в текущем каталоге в нижний регистр.
#! /bin/bash
#
# Изменит все имена файлов в текущем каталоге в нижнй регистр.
#
for filename in * # Обход всех файлов в каталоге.
do
fname=`basename $filename`
n=`echo $fname | tr A-Z a-z` # Перевести символы в нижний регистр.
if [ "$fname" != "$n" ] # Переименовать только те файлы, имена которых изменились.
then
mv $fname $n
fi
done
exit 0
# Сироки приведенные ниже не будут исполняться, поскольку выше стоит команда "exit".
#--------------------------------------------------------#
# Запустите эту часть сценария, удалив строки , стоящие выше.
# Сценарий, приведенный выше, не работает с именами файлов, содержащими пробелы или символы перевода строки.
# В связи с этим, Stephane Chazelas предложил следующий вариант:
for filename in * # Нет необходимости использовать basename,
# поскольку "*" возвращает имена, не содержащие "/".
do n=`echo "$filename/" | tr '[:upper:]' '[:lower:]'`
# символьные классы POSIX.
# Завершающий слэш добавлен для того, чтобы символ перевода строки
# не был удален при подстановке команды.
# Подстановка переменной:
n=${n%/} # Удаление завершающего слэша, добавленного выше.
[[ $filename == $n ]] || mv "$filename" "$n"
# Проверка -- действительно ли изменилось имя файла.
done
exit 0
- Пример 12-8. Частота встречаемости отдельных слов
- Пример 12-9. Какие из файлов являются сценариями?
- Пример 12-10. Генератор 10-значных случайных чисел
- Пример 12-11. Мониторинг системного журнала с помощью tail
- Пример 12-12. Сценарий-эмулятор "grep"
- Пример 12-13. Поиск слов в словаре
- Пример 12-14. toupper: Преобразование символов в верхний регистр.
- Пример 12-15. lowercase: Изменение имен всех файлов в текущем каталоге в нижний регистр.
- Пример 12-16. du: Преобразование текстового файла из формата DOS в формат UNIX.
- Пример 12-17. rot13: Сверхслабое шифрование по алгоритму rot13.
- Пример 12-18. Более "сложный" шифр
- Пример 12-20. Пример форматирования списка файлов в каталоге
- Пример 12-21. nl: Самонумерующийся сценарий.
- Пример 12-14. toupper: Преобразование символов в верхний регистр.
- Регистрация ТСР
- Ширина и глубина ассортимента
- Пример установочного скрипта
- Пример из практики
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Создание файлов с блокировкой
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- Имена индексов ограничений
- Примеры получения статистики