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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.