2012-06-19 5 views
-2

나는 file_022.bmp, file_023.bmp ... file_0680.bmp와 같은 많은 파일을 가지고 있습니다. 파일 이름을 file_1.bmp, file_2.bmp ... file_658.bmp와 같이 좀 더 편리하게 바꿀 필요가 있습니다.Linux에서 여러 파일의 이름 바꾸기

나를 위해이 작업을 수행 할 수있는 bash 스크립트가 있습니까? 도움과 조언에 감사드립니다.

누가 복음 H

당신은 당신이 파일의 이름을 변경 regular expressions을 받아 이름 바꾸기 스크립트를 사용할 수있는 데비안 기반의 리눅스 시스템에 있다면
+1

시도한 내용은 무엇입니까? 방금 [문자열 조작] (http://mywiki.wooledge.org/BashFAQ/100) – ormaaj

+0

[BASH에서 여러 파일 이름 바꾸기] 가능한 복제 방법을 알아야합니다 (http://stackoverflow.com/questions/2416263/rename-files-in-the-bash) –

+0

"022"에서 21을 빼고 맨 앞의 0을 제거 하시겠습니까? –

답변

5

. 좀 더 자세한 내용은 info입니다. 왜냐하면 제가 매뉴얼 페이지를 찾기가 어렵 기 때문입니다.

rename -n 's/([a-z]*)\.php/file_$1.perl/' p*.php 

내가 선택하고 캡처

parse.php renamed as file_parse.perl 
pd.php renamed as file_pd.perl 
pgrep.php renamed as file_pgrep.perl 
preg_based.php renamed as preg_file_based.perl 
proc.php renamed as file_proc.perl 

을 줄 것입니다 :

[email protected]_Gate:~$ ls p*.php 

parse.php pd.php pgrep.php preg_based.php proc.php 

은 내가 사용하는 명령을 내가 .perl 다음 file_ 로 이름을 앞에 추가 할 확장자를 변경한다고 가정 기본 파일 이름 ([a-z]*)을 입력 한 다음 대체 파일 $1에 사용하고 .perl을 추가하고 정규 strin을 $ 1 앞에 추가합니다 g file_

-n 옵션은 당신이 당신의 선택 정규 표현식이 올바르게 또는 경우 당신이 원하는 위 preg_based.php 같은 수를 생각해야이 예에서 볼 수 있듯이 아무것도

를 변경하지 않고 그것을 테스트 실행한다 file_preg_based.perl : 내가 여기

그것은 내가 데비안에 매달려 계속 왜 많은 이유 중 하나를 ([a-z_]*)를 사용하는 데 필요한 한 것이라고 보상하기 위해, 나는 다른 비 데비안에 대해 동등한를 찾을 싶어요 시스템 생각 : -/

+0

나에게 예제를 보여줄 수 있습니까? –

+2

이 설명서를 볼 수 있습니다. http://manpages.ubuntu.com/manpages/dapper/man1/prename.1.html – txominpelu

+0

이 (가) 예제를 추가했습니다. –

4

당신이 파일이 a.bmp 경우, b.bmp는 을 c.bmp 당신은 file_1.bmp, file_2.bmp와 끝까지 할, bash는 사용

file_3.bmp :

mkdir result 
index=1 
for i in *.bmp 
do 
    mv "$i" "result/file_"$((index++)).bmp 
done 

노트 :

mkdir result 
index=1 
find . -name "*.bmp" | while read i 
do 
    echo mv "$i" "result/file_"$((index++)).bmp 
done 
: 하위 디렉토리를 사용 은 당신이 당신이 좋아하는 무언가를 사용할 수있는 확장 후 명령 줄에 맞게 너무 많은 파일이있는 경우 file_xx.bmp

과 같은 파일을 덮어 쓰는 실수하지 않도록하는 것이 좋습니다

출력을 검사 한 후 'echo'를 제거하십시오.

관련 문제