2012-10-06 3 views
4

하나의 명령으로 file.jpg를 100 번 복사하려면 올바른 구문이 필요합니다. 따라서 개의 파일에 file001.jpg, file002.jpg, ..., file100.jpg가 있습니다. 당신이보다는 문자열 x을 비교 끝나는거야 그래서 내가 이것을 사용하고 있지만 나를 위해 작동하지 않는거야 어떤 조언 당신이 개 if 조건에서linux 명령. 파일을 100 번 복사하십시오.

#!/bin/bash 

for x in `seq 1 100`; do 

    if [[ x -lt 10 ]]; then cp file.jpg file-00$x.jpg; 

    elif [[ x -lt 100 ]]; then cp file.jpg file-0$x.jpg; 

    else cp file.jpg file-$x.jpg; 

    fi 

done 
+2

을 사용하여 '파일 이름을 얻을 수 있습니다. –

답변

3

, 당신은 $x$를 놓치고 번호.

Basile Starynkevitch는 다음과 같이 말합니다. printf 유틸리티는 아마도 여기에 갈 때 더 좋은 방법 일 것입니다. $(printf "file-%03d.jpg" $x)은 올바른 형식의 문자열을 한 줄로 가져옵니다.

+0

샤프 (sharp)처럼 작동합니다. – Jecki

+0

산술 비교를 사용하면'$'-'if ((x <10));를 생략 할 수 있습니다. 그때 ... –

14

당신은`$ (printf와 "파일 - %의 03d.jpg"$의 X)를 사용할 수 배쉬에게 brace expansion

for n in {001..100}; do 
    cp file.jpg file-$n.jpg 
done