2012-05-01 104 views
0

我想创建一个脚本来运行另一个脚本并从输出中更改名称。重命名Shell脚本的输出

这是迄今为止该脚本:

#! /bin/bash 

i=1 

for N in mediainput.iso mediainput2.iso 
do 
    x264transcode $N 
    mv $N $((i++)) 
done 

这不`吨那么好。它只是移动文件并重命名它们。

我需要先运行x264transcode,然后重命名该输出。因为当x264transcode处理文件时它们都会得到相同的名称。

它的okey表示文件被更改的名称是1,然后是2等等。

但是,如果出现一个获取文件所在文件夹名称的方法或文件本身,这将是一个加号。也许在他们之间选择不同的场景。

实施例下面:

  1. 〜/视频/暑假2009/dvd.iso
  2. 从X264
  3. 输出:VIDEO01.mkv
  4. 从重命名脚本
  5. 输出:夏假期-2009.mkv
+0

此。对我来说听起来并不合理。 'mediainput.iso中的N'mediainput2.iso'将N的名称设置为mediainput.iso,然后设置为mediainput2.iso。然后你调用'x264transcode $ N',这样在第一个变量替换之后就会'bex264transcode mediainput.iso'。 'mv $ N $((i ++))'然后mv /重命名输入文件。你的输入文件名是输出文件名吗?但是,这对于每个文件都是不一样的名字。你也在谈论文件夹。但'mediainput.iso'也不看作文件夹名称。我错了吗? –

回答

1

x264transcode是否总是调用其输出VIDEO01.mkv?所有的视频文件dvd.iso?如果是这样,这样的事情,也得到了正确的文件名用连字符:

cd ~/Videos 
for I in */dvd.iso 
do 
    x264transcode $I 
    mv VIDEO01.mkv `dirname $I|tr ' ' -`.mkv 
end 

这是假设x264transcode店VIDEO01.mkv在当前目录,而不是它的输入文件所在的目录

+0

视频文件将始终是.iso或.img |输出是动态的,但始终以.mkv |结尾x264transcode将输出存储在我可以指定的不同文件夹中。 – MikalD