重命名Shell脚本的输出

时间:2012-05-01 19:41:12

标签: bash shell

我正在尝试创建一个运行另一个脚本的脚本,并从输出中更改名称。

到目前为止,这是脚本:

#! /bin/bash

i=1

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

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

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

文件更改为的名称是1,然后是2,依此类推。

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

以下示例:

  1. 〜/ Videos / Summer Vacation 2009 / dvd.iso
  2. x264的输出:VIDEO01.mkv
  3. 重命名脚本输出:Summer-Vacation-2009.mkv

1 个答案:

答案 0 :(得分: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存储在当前目录中,而不是其输入文件所在的目录中。