2017-05-07 1 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 

유일한 문제, 즉 다른 실행을 위해 다시 시작의 다른 번호 부여, I 현재 각 실행에 대해 두 번째 마지막 행을 수동으로 변경합니다. A A 루프에 두 번째 마지막 줄을 만드는 방법뿐만 아니라 그래서 단순히 스크립트를 호출 할 수 있는가 :

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 

더 깨끗하게 정리할 수 있습니까? 어쩌면 좀 더 일반적이고 어리석은 증거를 만들 수 있을까요?

관련 문제