Задать вопрос
shevchenkonik
@shevchenkonik

Как осуществлять перебор?

#!/bin/bash
echo "Start"
for file in `find test/*/*.png`
do
  convert $file $file.gif
done
echo "Finish"


Такой скрипт делает в каждой из поддиректории test действие : конвертирует каждый файл формата png в новый файл формата гиф. Возможно ли все файлы поддиректории объединять в один и переходить к следующей папке?

На выходе получится новых файлов столько, сколько папок, а не сколько старых png файлов.

Спасибо всем и прошу прощение за неказистость вопроса )
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
$ find ./test -type f -name '*.png' -exec convert {} {}.gif \;

Мне нужно взять n файлов внутри папки и соединить все в одно.

Вам конкатенировать файлы нужно или что?
#UPD1:
#!/bin/bash
set -e
for dirs in $(find ./test -type d -name 'images'); do
	for dir in "${dirs}"; do
		imgs=$(find "${dir}" -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png')
		cat ${imgs} > "${dir}"/$$.gif;
	done
done


./test
├── 1
│   └── images
│       ├── 1.jpg
│       ├── 2.jpg
│       ├── 3.jpg
│       └── 4898.gif
├── 2
│   └── images
│       ├── 1.jpg
│       ├── 2.jpg
│       ├── 3.jpg
│       └── 4898.gif
├── 3
│   └── images
│       ├── 1.jpg
│       ├── 2.jpg
│       ├── 3.jpg
│       └── 4898.gif
└── images
    ├── 1.jpg
    ├── 2.jpg
    ├── 3.jpg
    └── 4898.gif
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы