Translate

[Shell][Bash] 파일명의 특정 문자열을 일괄적 변경방법



파일명을 일괄 변경할 일이 있는데 이게 파일 개수가 꽤 많아서
찾는 시간이 조금 걸리더라도 찾아서 작업을 하는게 나을 것 같다는 판단!!



sed를 이용해 사용한 Script는 다음과 같다.

#!/bin/bash
for i in `find .`
do
mv $i `echo $i | sed -e 's/\/e/\/h/'`
done


출처: http://kjahyeon.no-ip.info/blog/?p=127



출처에서 변경된 부분 설명

1. ls 로 사용 시 현재의 디렉토리만 변경이 가능하지만 find로 검색 시 하위의 디렉토리까지 변경이 가능하다.

2. sed 관련
  - 사용방법: sed 's/원본문자열/치환할문자열/'   (문자열은 정규식 사용이 가능하다)
  - 위에서 내가 사용한 방법은 '/e' 문자열을 '/h'로 변경하는 작업이다.






다음과 같은 파일이 있다면
./1/e111.jpg
./1/e222.jpg
./2/e111.jpg
./2/e222.jpg

...


다음과 같이 변경이 된다.
./1/h111.jpg
./1/h222.jpg
./2/h111.jpg
./2/h222.jpg

...



댓글