bash. пробелы в файлах. как победить ?

Все о программировании под *nix
Аватара пользователя
kif0rt
Неотъемлемая часть форума
Сообщения: 1371
Зарегистрирован: 03 ноя 2004, 01:49
Откуда: Минск

bash. пробелы в файлах. как победить ?

Сообщение kif0rt »

Извиняюсь конечно за ламерский вопрос ... понадобилось мне написать простенький скрипт.

Что-то типа :

Код: Выделить всё

for i in *
do
     ffmpeg -i $i -s 320x240 -b 386 -r 15 -aspect 4:3 -vcodec xvid -ar 44100 -ab 128 -acodec mp3 $i.avi
done


На файлах с пробелами оно спотыкается. Гугл ничего не подсказал. Точнее везде один и тот же пример : find -print0 | xargs -0

Что посоветуете ?
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson

Аватара пользователя
rain
Неотъемлемая часть форума
Сообщения: 219
Зарегистрирован: 02 июл 2006, 20:56
Контактная информация:

Сообщение rain »

Код: Выделить всё

ls -1 | while read i;do something "$i" ; done

Аватара пользователя
kif0rt
Неотъемлемая часть форума
Сообщения: 1371
Зарегистрирован: 03 ноя 2004, 01:49
Откуда: Минск

Сообщение kif0rt »

rain, не работает. На файле с пробелом вырубается.
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson

Аватара пользователя
kif0rt
Неотъемлемая часть форума
Сообщения: 1371
Зарегистрирован: 03 ноя 2004, 01:49
Откуда: Минск

Сообщение kif0rt »

rain, не работает. На файле с пробелом вырубается.
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson

Аватара пользователя
rain
Неотъемлемая часть форума
Сообщения: 219
Зарегистрирован: 02 июл 2006, 20:56
Контактная информация:

Сообщение rain »

Странно, в общем виде у меня работает

Код: Выделить всё

rain@acnote:/tmp/test$ ls
some picture 01.jpg.old  some picture 02.jpg.old  some picture 03.jpg.old  some picture 04.jpg.old  some picture 05.jpg.old
rain@acnote:/tmp/test$ ls -1 | while read i;do convert "$i" "${i%.jpg*}.png" ; done
rain@acnote:/tmp/test$ ls
some picture 01.jpg.old  some picture 02.jpg.old  some picture 03.jpg.old  some picture 04.jpg.old  some picture 05.jpg.old
some picture 01.png      some picture 02.png      some picture 03.png      some picture 04.png      some picture 05.png
сейчас буду ffmpeg ковырять :)

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

kif0rt, тут две проблемы:
1) for
2) ffmpeg

Первая проблема решается передергиванием $IFS, вторая проблема уже более частная.
В понедельнік авось доберусь до куска кода с IFS.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
Quantum
Неотъемлемая часть форума
Сообщения: 259
Зарегистрирован: 20 мар 2006, 15:53
Откуда: г. Минск

Сообщение Quantum »

Вызірае на вычварэньне, але павінна працаваць

Код: Выделить всё

for i in $(ls | tr [:blank:] [*]); 
do 
     ffmpeg -i "$i" -s 320x240 -b 386 -r 15 -aspect 4:3 -vcodec xvid -ar 44100 -ab 128 -acodec mp3 "$i".avi ;
done

Berserker
Неотъемлемая часть форума
Сообщения: 279
Зарегистрирован: 23 апр 2005, 21:13
Откуда: minsk

Сообщение Berserker »

лавіце яшчэ версію
find . -type f -exec ffmpeg -i "{}" -s 320x240 -b 386 -r 15 -aspect 4:3 -vcodec xvid -ar 44100 -ab 128 -acodec mp3 "{}".avi \;

Аватара пользователя
kif0rt
Неотъемлемая часть форума
Сообщения: 1371
Зарегистрирован: 03 ноя 2004, 01:49
Откуда: Минск

Сообщение kif0rt »

Quantum, не сработало :(

Berserker, красава! пашет. спасибо. 8)
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

если решать проблему имнно в shell, то получается так:

Код: Выделить всё

:~$ for i in `ls *mp3`
> do
> echo $i
> done
07
-
Farewell.mp3
guerrilla
urbana
-
Камень
маiм
белютэнем.mp3
master_klass.mp3
neuro_dubel_kraj.mp3
neuro_dubel_pidarasy.mp3
nrm_miensk_i_minsk.mp3
zet_aniol.mp3
z_o.mp3
:~$ export IFS="
> "
:~$ for i in `ls *mp3`
> do
> echo $i
> done
07 - Farewell.mp3
guerrilla urbana - Камень маiм белютэнем.mp3
master_klass.mp3
neuro_dubel_kraj.mp3
neuro_dubel_pidarasy.mp3
nrm_miensk_i_minsk.mp3
zet_aniol.mp3
z_o.mp3
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
kif0rt
Неотъемлемая часть форума
Сообщения: 1371
Зарегистрирован: 03 ноя 2004, 01:49
Откуда: Минск

Сообщение kif0rt »

Llama, Спасибо, буду знать.
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson

Аватара пользователя
Quantum
Неотъемлемая часть форума
Сообщения: 259
Зарегистрирован: 20 мар 2006, 15:53
Откуда: г. Минск

Сообщение Quantum »

Цікава, у мяне заўжды працавала...
А на што лаецца?

Аватара пользователя
kif0rt
Неотъемлемая часть форума
Сообщения: 1371
Зарегистрирован: 03 ноя 2004, 01:49
Откуда: Минск

Сообщение kif0rt »

Quantum, ошибок никаких не вылетает, но на файле с пробелом скрипт просто останавливается и всё.
Ненасилие ещё никому не помогало
Trying is the first step towards failure (c) Homer Simpson

Аватара пользователя
rain
Неотъемлемая часть форума
Сообщения: 219
Зарегистрирован: 02 июл 2006, 20:56
Контактная информация:

Сообщение rain »

Странно, у меня вполне нормально отрабатывает.

ZvK
Фанатеющий
Сообщения: 140
Зарегистрирован: 30 май 2006, 18:07
Контактная информация:

Сообщение ZvK »

возьмите в кавычки

Ответить