#这个好像有空格,做些处理空格的工作或者用_代替空格。mimihu88 写了:另外,碰到一个问题:
文件名为:[63年地狱之赛].De.hel.van '63.iso,上面10楼的bash不能识别这个名字,我知道是因为那个造成的,改个名字就可以了,这是为什么?'63
帮帮忙,一个提取DVD章节的脚本
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 帮帮忙,一个提取DVD章节的脚本
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 帮帮忙,一个提取DVD章节的脚本
#其实我是以这种方式提升自身水平的。mimihu88 写了:谢谢你的热心帮助,如果太麻烦就算了,我只是碰到问题想弄明白,缺乏这方面知识基础,带着问题学习事半功倍,一味看书,太枯燥,看不下去fnan 写了:#全自动版,按实际情况改改。代码: 全选
#!/bin/bash for fl in *.iso do title=$(lsdvd 2>/dev/null|grep -c '^Title') chapter=$(lsdvd 2>/dev/null|sed -rn '/^Title/{s/.*Chapters: ([0-9]+).*/\1/p;q}') echo "TITLES=$title CHAPTERS=$chapter" n=0 if [[ $title -gt $chapter ]] then while ((++n <= title)) do echo "Dumpstream - $fl - TITLE $title/$n" mplayer -really-quiet -dumpstream -dumpfile ${fl%.iso}_${n}.vob dvd://$n # 假设标题比章节多就是按标题分集。 done else while ((++n <= chapter)) do echo "Dumpstream - $fl - CHAPTER $chapter/$n" mplayer -really-quiet -chapter ${n}-${n} -dumpstream -dumpfile ${fl%.iso}_${n}.vob dvd://1 # 不然就是按章节分集。 done fi done echo " ********************** SUCCESSFULLY ***********************"
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 帮帮忙,一个提取DVD章节的脚本
#如果以标题分集是每个个标题只有一个章节的话,不用lsdvd一样可以实现自动化,不过逻辑复杂些,速度也慢些,因为是靠比较提出来的第一章与跟着提出的每一章是否前面部分相同来判断不存在的章节:
cmp <(head -1000 chapter_1.vob) <(head -1000 chapter_10.vob)
#如果不返回信息,就是两者相同,即章节10其实是回到章节1了,意味章节10不存在,可以删除之并跳到下一个iso.
#条件是确定不会有相同的两个章节。
cmp <(head -1000 chapter_1.vob) <(head -1000 chapter_10.vob)
#如果不返回信息,就是两者相同,即章节10其实是回到章节1了,意味章节10不存在,可以删除之并跳到下一个iso.
#条件是确定不会有相同的两个章节。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。