0

別のスクリプトを実行し、出力から名前を変更するスクリプトを作成しようとしています。

これまでのスクリプトは次のとおりです。

#! /bin/bash

i=1

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

これはうまくいきません。ファイルを移動して名前を変更するだけです。

最初に x264transcode を実行してから、その出力の名前を変更する必要があります。x264トランスコードでファイルを処理すると、それらはすべて同じ名前になるためです。

ファイルの名前が 1、2 などに変更されるのは問題ありません。

ただし、ファイルが含まれているフォルダーの名前またはファイル自体を取得する方法があれば、それはプラスになります。たぶん、さまざまなシナリオでそれらの中から選択します。

以下の例:

  1. ~/動画/夏休み2009/dvd.iso
  2. x264 からの出力: VIDEO01.mkv
  3. 名前変更スクリプトからの出力: Summer-Vacation-2009.mkv
4

1 に答える 1

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を、入力ファイルが置かれているディレクトリではなく、現在のディレクトリに格納していることを前提としています。

于 2012-05-01T19:46:23.740 に答える