LINUX.ORG.RU

Помогите со скриптом. Поиск и конвертирование


0

1

Помогите со скриптом. Есть каталог. В нем куча подкаталогов, в каждом из которых есть изображения в формате .tif Очень нужно найти их и конвертировать в .tga

В нете нарыл как конвертить с помощью имаджмэджика:

for f in *.tif ; do convert «$f» «${f%.tif}.tga» ; done

А как организовать, чтоб еще по всем каталогам проходился и конвертил в ту же папку с тем же именем. Спасибо!!


find с ключом -exec. кури маны.

anonymous ()

тыщя вариантов, типа
for dir in find . -type d
do
for f in $dir/*.tif ; do convert «$dir/$f» «$dir/${f%.tif}.tga» ; done
done
но вообще кчно стоит изучить find и циклы for

fr_butch ()

find это вчерашний день, для таких задач доктор прописал рекурсивный глоббинг:

bash:
for f in **/*.tif;do convert "$f" "${f%.tif}.tga" ; done

zsh:
for f in **/*.tif;convert "$f" "${f%.tif}.tga"
zolden ★★★★★ ()
Ответ на: комментарий от zolden

и правда есть такое в bash. но только с 4.х версии.
globstar еще включить нужно.

fr_butch ()
Ответ на: комментарий от zolden

если для zsh писать с do/done тоже работает

anonymous ()
Ответ на: комментарий от zolden

find это вчерашний день, для таких задач доктор прописал рекурсивный глоббинг:

Ппц, чему ты людей учишь. Причем тут вчерашний день? Когда это find успел устареть? Как по нескольким критериям будешь фильтровать файлы?

Короче, дописывай к подобным своим мыслеизвержениям «по моему скромному некомпетентному мнению», а лучше держи их при себе.

power ()
Ответ на: комментарий от power

>Как по нескольким критериям будешь фильтровать файлы?
Про то, что ты не заметил уточнение «для таких задач» я тактично промолчу, но наказать тебя за дерзость как-то надо, поэтому давай пример «нескольких критериев», я тебя так и быть научу.

zolden ★★★★★ ()
Ответ на: комментарий от zolden

Все файлы, младше 2х дней, доступ к которым осуществлялся за последний час, имеющий тип файла(magic тип, не расширение файла) mp3, расположенные в директории, имеющий уровень вложения меньший или равный двум. Вперед.

power ()
Ответ на: комментарий от power

Что имеется в виду под magic типом? Покажи пример.
Критерий про уровень вложения не принимается, читать топик «А как организовать, чтоб еще по *всем* каталогам проходился» и моё уточнение «для таких задач»

zolden ★★★★★ ()
Ответ на: комментарий от zolden

Что имеется в виду под magic типом? Покажи пример.

file(1)

Критерий про уровень вложения не принимается, читать топик «А как организовать, чтоб еще по *всем* каталогам проходился» и моё уточнение «для таких задач»

Я вообще-то про это говорил:

find это вчерашний день

power ()
Ответ на: комментарий от power

file(1)

Это не пример. Почитай в словаре определение слова, если что-то непонятно

Вчерашний день, это когда памяти было мало, и шеллы не умели каких-то очень удобных вещей.
Вот тебе пример множественных критериев:
замена строки «boobs» на «tits» во всех вложенных папках в файлах *.jpg (в независимости от регистра расширения) больших 10 байт и меньших 4500 байт, созданных за последние 90 дней и с доступом за последний час:

sed -i 's/boobs/tits/g' **/(#i)*.jpg(L+10L-4500c-90a-1)

zolden ★★★★★ ()
Ответ на: комментарий от zolden

я просил помочь - zolden дал мне полную инструкцию к моей проблеме. Спасибо ему за это) По крайней мере это лучше чем ответы типа «кури маны»;

bvg_x ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.