Пример A-3. rn: Очень простая утилита для переименования файлов
Пример A-3. rn: Очень простая утилита для переименования файлов
Этот сценарий является модификацией Пример 12-15.
#! /bin/bash
#
# Очень простая утилита для переименования файлов
#
# Утилита "ren", автор Vladimir Lanin (lanin@csd2.nyu.edu),
#+ выполняет эти же действия много лучше.
ARGS=2
E_BADARGS=65
ONE=1 # Единственное или множественное число (см. ниже).
if [ $# -ne "$ARGS" ]
then
echo "Порядок использования: `basename $0` старый_шаблон новый_шаблон"
# Например: "rn gif jpg", поменяет расширения всех файлов в текущем каталоге с gif на jpg.
exit $E_BADARGS
fi
number=0 # Количество переименованных файлов.
for filename in *$1* # Проход по списку файлов в текущем каталоге.
do
if [ -f "$filename" ]
then
fname=`basename $filename` # Удалить путь к файлу из имени.
n=`echo $fname | sed -e "s/$1/$2/"` # Поменять старое имя на новое.
mv $fname $n # Переименовать.
let "number += 1"
fi
done
if [ "$number" -eq "$ONE" ] # Соблюдение правил грамматики.
then
echo "$number файл переименован."
else
echo "Переименовано файлов: $number."
fi
exit 0
# Упражнения:
# ----------
# С какими типами файлов этот сценарий не будет работать?
# Как это исправить?
#
# Переделайте сценарий таким образом, чтобы он мог обрабатывать все файлы в каталоге,
#+ в именах которых содержатся пробелы, заменяя пробелы символом подчеркивания.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Пример: СОМ-объект для архивирования файлов
Пример: СОМ-объект для архивирования файлов Представим себе следующую ситуацию. Имеется несколько каталогов на жестком диске, в которых хранятся рабочие файлы разных пользователей. Необходимо каждый день с помощью программы-архиватора arj.exe делать архивы этих файлов в
Пример создания PDF-файлов
Пример создания PDF-файлов В качестве примера использования очереди печати можно привести задачу преобразования входных PostScript-данных в PDF-файлы. Для ее решения надо создать очередь подобную той, которая используется для обработки данных, сгенерированных с помощью
Пример: простая программа с уведомлением
Пример: простая программа с уведомлением Прежде чем углубляться в тонкости сигналов реального времени и потоков Posix, мы напишем простейшую программу, включающую отправку сигнала SI6USR1 при помещении сообщения в пустую очередь. Эта программа приведена в листинге 5.8, и мы
3. Операция переименования.
3. Операция переименования. Операция переименования атрибутов на языке структурированных запросов осуществляется довольно просто. А именно воплощается в действительность следующим алгоритмом:1) в списке имен атрибутов фразы Select перечисляются те атрибуты, которые
Пример 12-20. Пример форматирования списка файлов в каталоге
Пример 12-20. Пример форматирования списка файлов в каталоге #!/bin/bash# За основу сценария взят пример "man column".(printf "PERMISSIONS LINKS OWNER GROUP SIZE DATE TIME PROG-NAME " ; ls -l | sed 1d) | column -t# Команда "sed 1d" удаляет первую строку, выводимую командой ls,#+ (для локали "С" это строка: "total N",#+ где "N" -- общее
Пример 12-30. Декодирование файлов
Пример 12-30. Декодирование файлов #!/bin/bashlines=35 # 35 строк для заголовка (более чем достаточно).for File in * # Обход всех файлов в текущем каталоге...do search1=`head -$lines $File | grep begin | wc -w` search2=`tail -$lines $File | grep end | wc -w` # Закодированные файлы начинаются со слова "begin", #+ и заканчиваются словом
Пример 12-43. Генератор имен файлов
Пример 12-43. Генератор имен файлов #!/bin/bash# tempfile-name.sh: Генератор имен временных файловBASE_STR=`mcookie` # 32-символьный (128 бит) magic cookie.POS=11 # Произвольная позиция в строке magic cookie.LEN=5 # $LEN последовательных символов.prefix=temp # В конце концов это временный ("temp")
Пример 22-1. Простая функция
Пример 22-1. Простая функция #!/bin/bashfunky (){ echo "Это обычная функция."} # Функция должна быть объявлена раньше, чем ее можно будет использовать. # Вызов функции.funkyexit 0Функция должна быть объявлена раньше, чем ее можно будет использовать. К сожалению, в Bash нет возможности
Очень редко, но очень метко
Очень редко, но очень метко Автор: Алексей СтародымовДо недавних пор компания Samsung особо не рвалась на рынок смартфонов и коммуникаторов - так, то выпустит заведомо уступающую аналогам модель на базе Symbian, то что-нибудь мейнстримное на основе Windows Mobile… Словом, четких и
Результат переименования
Результат переименования Убедимся, что нам понятен результат этого действия. Пусть класс SANTA_BARBARA имеет вид (оба унаследованных компонента foo в нем переименованы): Рис. 15.13. Устранение конфликта имен(Обратите внимание на графическое обозначение операции смены имен.)
Правило переименования
Правило переименования В этом разделе мы не введем никаких новых понятий, а лишь точнее сформулируем известные правила и приведем пример, призванный пояснить сказанное.Начнем с запрета возникновения конфликта имен:Определение: финальное имяФинальным именем компонента