LINUX.ORG.RU
ФорумAdmin

Нужен скрипт. Работа с текстовым файлом.


0

0
Хочу сделать скрипт генирации плейлиста для тотема.
Есть каталог с видеофайлами, которые надо поместить в плейлист.
С помощью команды ls > playlist.pls создаю файл в котором все видеофайлы.

Как мне добавить перед каждым видеофайлом текст что пишется в плейлисте (File1=file:///video/имя файла)?

А может есть какой гениратор плейлиста для тотема?
anonymous
>А может есть какой гениратор плейлиста для тотема?

Есть. sed
sdio ★★★★★
()
Тут придумалось :))

find <path to directory> -name "*.avi" -print | \ xargs -I '{}' echo "(File1=file://{})">tmp.pls

cat playlist.pls | awk -F'1' '{print $2}' | awk '{print "File"NR$0}' > playlist.pls

rm tmp.pls

Удачи :)

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

find <path to directory> -name "*.avi" -print | \
xargs -I '{}' echo "(File1=file://{})">tmp.pls

cat playlist.pls | awk -F'1' '{print $2}' | awk '{print "File"NR$0}' > playlist.pls

rm tmp.pls
Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in
финальный релиз :))


find <path to directory> -name "*.avi" -print | \
xargs -I '{}' echo "(File1=file://{})" | \
awk '{sub("File1", "File"NR); print $0}' > playlist.pls

без временного файла :)
Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in
Версия 1.0.1 :-)

find <path to directory> -name "*.avi" -print | \ xargs -I '{}' echo "(File1=file://{})" | \ sort | \ awk '{sub("File1", "File"NR); print $0}' > playlist.pls

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

find <path to directory> -name "*.avi" -print | \ xargs -I '{}' echo "(File1=file://{})" | \ sort | \ awk '{sub("File1", "File"NR); print $0}' > playlist.pls

Копипаст - это вселенское зло.

anonymous
()
Ответ на: комментарий от anonymous
Он и в третий раз ходил за ёлкой...

find <path to directory> -name "*.avi" -print | \
xargs -I '{}' echo "(File1=file://{})" | \
sort | \
awk '{sub("File1", "File"NR); print $0}' > playlist.pls

Форматирование - это наше всё.
anonymous
()
Ответ на: удаленный комментарий
Не шибко ли мудро?

teddy@toshiba~/$ k=1; for f in $(ls); do echo "File$k=file:///video/$f">>playlist.pls; k=$((k+1)); done

Ну, еще можно перед всем этим делом echo'нуть [playlist]
Uncle_Theodore ★★
()
Ответ на: комментарий от Uncle_Theodore
:-)
Согласен, просто awk это было первое, что пришло в голову

(выкинул лишнее из того решения):

find <path to directory> -name "*.avi" -print | \
sort | \
awk 'BEGIN{print "[playlist]"}{print "File"NR"=file://"$0}' > playlist.pls
Outrider
()
Ответ на: комментарий от Outrider
find /path/to/hui/ -type f -iname '*.avi' | nl | sed -re 's/^[[:blank:]]+([[:digit:]]+)[[:blank:]]+/File\1=/' > porevo.pls
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.