2011-10-08 2 views
0

매우 간단한 문제가 발생하지만 해결하지 못했습니다. 나는 도움을 구하기로 결심했다. 나는별로 좋은 대본을 쓰지 않아서이 웹 사이트에서 사마리아인을 찾을 수 있기를 바랬다. 나는 다음과 같은 형식의 파일을 가지고파일을 복사 한 다음 이전 위치에 따라 새 폴더 (배치)에 이름을 바꿉니다.

/test1/da/0/1/nnn.dat 
/test1/da/0/2/nnn.dat 
/test1/da/0/3/nnn.dat 
… 
/test1/da/y/n/nnn.dat 
/test1/da/y+1/n+1/nnn.dat 
/test1/da/y+1/n+2/nnn.dat 
… 
/test1/da/y+n/n+n/nnn.dat 

내가 각 nnn.dat의 이름이 변경됩니다 같은 방법으로 /newfolder/nnn.dat에 모든 하위 폴더에있는 모든 nnn.dat 파일을 복사하려면 예를 들어, 위치에 따라 :

/newfolder/0_1_nnn.dat 
/newfolder/0_2_nnn.dat 
/newfolder/0_3_nnn.dat 
… 
/newfolder/y_n_nnn.dat 

또한, 나는 문자의 특정 세트로 nnn.dat 파일의 특정 행 번호를 대체합니다.

Please HELP!

답변

0
for f in /test/da/*/*/*.dat; do 
    yn="${f##/test/da/}" 
    b="${yn##*/}" 
    yn="${y%/*}" 
    y="${yn%%/*}" 
    n="${yn##*/} 
    cp "$f" "/newfolder/${y}_${n}_${b}" 
done 
관련 문제