2017-05-07 3 views
0

シミュレーションのいくつかを複数回再起動しました。再起動の回数は、ケースによって異なります。後処理のためには、これらの再起動の出力をすべて分析して単一のファイルにまとめる必要があります。私の実行/再起動の命名規則は簡単です。例えばrun101ため、私の再起動がrun101r1という名前になり、run101r2など複数のディレクトリからファイルに結合するbash

私はこのbashスクリプトを思い付いた:

vars=(a b c d e f) 
runname=$1 
for i in ${vars[*]}; do 
echo 'Combining movies for ' $i 
cat $runname/staging/movie.$i.000 $runname\r1/staging/movie.$i.001 > ./$i 
done 

唯一の問題は異なる実行のために再起動の異なる番号を与えられた、ということで、私は現在、手動で各実行の最後の2行目を手動で変更します。

nは再起動の回数である
>combine_movies.sh run101 n 

:私は単にスクリプトを呼び出すことができるようにもループに最後から二番目のラインを作るための方法はありますか?

答えて

0

いくつかの実験の後、私は文字列を作成し、その文字列を評価することができました。最終的なスクリプトは次のとおりです。

vars=(a b c d e f) 
for i in ${vars[*]}; do 
    a="cat $1/staging/movie.$i.000 " 
    for j in $(seq 1 $2); do 
    a="$a $1r$j/staging/movie.$i.00$j " 
    done 
    a="$a > ./$i" 
    echo $a 
    eval $a 
done 

さらにこれをクリーンアップできますか?たぶん、もう少し一般的で馬鹿な証拠になったのだろうか?

関連する問題