Обработка файлов на BASH

Автор: Admin

Дата:2013-09-11

Переименование файлов при помощи BASH

По той или иной причине при работе с определенными службами а точнее с файлами нам приходиться производить какие-либо манипуляции с файлами.

За пример возьмем кучу файлов с расширением .PNG - это фотографии и представим себе, что нам их нужно, либо переименовать в нижний регистр или переконвертировать в другой формат например в .JPG

Если Вы ищите качественный продукт для облегчения ведения документации по  строительным сметам. То ознакомиться с продуктом можно подробнее. Программа Смета.ру является единственной в своем роде, обладает гибким подходом в произведении сметных расчетов.

Давайте приступим, а для этого можно сразу сделать не большие скрипты на BASH

Переконвертация

Ну здесь все достаточно просто, нам нужна программа convert из пакета ImageMagick.

#!/bin/sh
cat=/locales/samba/file/
cd $cat

for file in `find -type f`;
do 
convert *.png b.JPG;
done

rm -rf *.png

# ls -al
-rw-r--r-- 1 root   root   51964 Сен 11 08:17 b-0.JPG
-rw-r--r-- 1 root   root   56685 Сен 11 08:17 b-1.JPG
-rw-r--r-- 1 root   root   51689 Сен 11 08:17 b-2.JPG
-rw-r--r-- 1 root   root   54821 Сен 11 08:17 b-3.JPG
-rw-r--r-- 1 root   root   51430 Сен 11 08:17 b-4.JPG


Дальше можно изменить расширение ВСЕХ файлов на нижний регистр

#!/bin/sh
export count=0;
 for file in `find -type f`;
do  mv ${file} `basename ${count}`.JPG; export count=`expr ${count} + 1`;
done


#ls -al
-rw-r--r-- 1 root   root   56685 Сен 11 08:17 0.jpg
-rw-r--r-- 1 root   root     114 Сен 11 08:17 1.jpg
-rw-r--r-- 1 apache apache    47 Авг 20 16:25 2.jpg
-rw-r--r-- 1 root   root   51689 Сен 11 08:17 3.jpg
-rw-r--r-- 1 root   root   51964 Сен 11 08:17 4.jpg
-rw-r--r-- 1 root   root   51430 Сен 11 08:17 5.jpg
-rw-r--r-- 1 root   root     134 Сен 11 08:19 6.jpg
-rw-r--r-- 1 root   root   54821 Сен 11 08:17 7.jpg

Преобразовать имена фалов из нижнего регистра в верхний:

#!/bin/sh
for file in $( ls | grep [a-z] );
do mv -i $file `echo $file | tr ‘a-z’ ‘A-Z’`;
done


и обратно

#!/bin/sh
for file in $( ls | grep [A-Z] );
do mv -i $file `echo $file | tr ‘A-Z’ ‘a-z’`;
done

Вот такие вот, в основном бесполезные, примеры по преобразованию файлов, могут помочь в какой-либо рутинной работе.

Количество просмотров: 3546

Комментарии к статье:

Добавить комментарий

Введите сумму с картинки

© Plutonit.ru - Администрирование, настройка Linux и Windows 2009 - 2024