分页: 1 / 1

如何按照顺序拼接文件

发表于 : 2010-05-24 21:20
罗非鱼
已经知道有如下文件:
/home/pt/videos/pama2/1.flv.mpg
/home/pt/videos/pama2/2.flv.mpg
/home/pt/videos/pama2/3.flv.mpg
/home/pt/videos/pama2/4.flv.mpg
/home/pt/videos/pama2/5.flv.mpg
/home/pt/videos/pama2/6.flv.mpg
/home/pt/videos/pama2/7.flv.mpg
/home/pt/videos/pama2/8.flv.mpg
/home/pt/videos/pama2/9.flv.mpg
/home/pt/videos/pama2/10.flv.mpg
我需要按照从1到10的顺序拼接,使用下面的程序
for filename in /home/pt/videos/pama2/*mpg;
do cat $filename >> /home/pt/videos/pama2/result.mpg;
echo $filename;
done;
注意echo $filename; 是用来看文件拼接顺序的
结果,拼接成了一个大文件,但是没有按照我期望的顺序,
屏幕输出
/home/pt/videos/pama2/10.flv.mpg
/home/pt/videos/pama2/1.flv.mpg
/home/pt/videos/pama2/2.flv.mpg
/home/pt/videos/pama2/3.flv.mpg
/home/pt/videos/pama2/4.flv.mpg
/home/pt/videos/pama2/5.flv.mpg
/home/pt/videos/pama2/6.flv.mpg
/home/pt/videos/pama2/7.flv.mpg
/home/pt/videos/pama2/8.flv.mpg
/home/pt/videos/pama2/9.flv.mpg
有一个文件本应当放在最后的,结果拼接在了最前面,
/home/pt/videos/pama2/10.flv.mpg
请问,我的shell程序如何修改?为何会出现这种结果?

Re: 如何按照顺序拼接文件

发表于 : 2010-05-24 22:10
eexpress
mencoder
all "copy", but better use mpeg4.

● cat .mplayer/mencoder.conf
[mpeg4]
profile-desc="MPEG4 编码"
oac=mp3lame=yes
ovc=lavc=yes
lavcopts=vcodec=mpeg4:vbitrate=1200

[mpeg4-hq]
profile-desc="高质量 MPEG4 编码"
profile=mpeg4
lavcopts=mbd=2:trell=yes:v4mv=yes

● /usr/bin/mencoder -profile mpeg4 `ls *.flv` -o profile-mpeg4.mpeg4

Re: 如何按照顺序拼接文件

发表于 : 2010-05-24 22:16
hrbeu06ws

代码: 全选

#!/bin/bash
for i in $(seq 10)
do
        cat /home/pt/videos/pama2/${i}.flv.mpg >> /home/pt/videos/pama2/result.mpg
        echo /home/pt/videos/pama2/${i}.flv.mpg
done

Re: 如何按照顺序拼接文件

发表于 : 2010-05-24 22:22
eexpress
cat would make player crash.
perhaps

mencoder 's "copy" can fix all problem