Regular Expression 은 어떠한 규칙에 따라서 문자열을 찾는 방식인데, 별거 아닌 것처럼 보여도, 정말 많은 작업을 손쉽게 해결할 수 있는 강력한 힘을 가지고 있다. 처음에는 이것에 대해서 Java 책에서 알게 됐었는데, 사실 언어와 상관 없는 표현법이기도 하고, 정말 다양한 곳에서 사용될 수 있는 강력한 무기다(이전에 Visual Studio 에서 이것을 이용하는 방법을 설명했었다. - 블로그 링크).

몇개 안써보긴 했지만, 써본 것 중에 가장 편리한 프로그램은 12noonRename Regular Expression 이라는 프로그램이다.

Rename Regular Expression

이왕 프로그램 소개하는거, 예제를 넣어서 살펴보겠다.

  1. Qatar, Losail - Race 1.mp4
  2. Qatar, Losail - Race 2.mp4
  3. Australia, Phillip Island - Race 1.mp4
  4. Australia, Phillip Island - Race 2.mp4
  5. Spain, Valencia - Race 1.mp4
  6. Spain, Valencia - Race 2.mp4

와 같은 파일들이 있다. 이것을

01-1. Qatar, Losail.mp4

와 같은 형식으로 변경하는 것이 목적이다. 내 경우는 무려 28 개나 되기 때문에(난 이런 반복 작업을 극도로 싫어한다), 일일이 파일 이름 바꾸는 것 보다는 Regular Expression 을 사용하는 것이 훨씬 편하다(이것이 수백, 수천개라고 하면 따로 알바를 고용하는 것이 나을 정도로 매우 짜증나는 작업이 된다).

일일이 과정 중에 스크린샷은 생략한다.

  1. Windows Explorer 에서 이름을 바꾸기 원하는 파일들을 선택한다.
  2. 오른쪽 버튼을 눌러서 'Rename RegEx...' 을 클릭한다.

그러면 프로그램이 실행되고, regular expression 을 입력할 수 있게 된다. 이 프로그램이 좋은 점은 일일이 파일을 바꾸지 않아도, 바꾸기전에 미리 어떻게 바뀔지 확인해볼 수 있다. Regular expression 을 한번에 입력하고 깨끗하게 성공하면 좋겠지만, 그렇지 못한 경우 expression 을 입력해보고 올바르게 변하는지 미리 확인하면서 할 수 있다.

아무튼, 약간의 경험(경험이 없으면 삽질)만 있으면 내가 원하는 작업은 다음과 같이 할 수 있는 것을 알 수 있다(미리 보기가 있으니까 훨씬 쉽다.).

Source expression : {..}\.{.*} - Race {.}

Target expression : $1-$3.$2

  • {..} 는 $1 에 대응 되는 것으로 아무 문자 2개(점 하나는 아무 문자하나에 대응 된다)를 뜻하며, 여기서는 01, 02 처럼 숫자 두개와 맞게 된다.
  • {.*} 는 $2 가 되며, 아무 문자(.) 여러개(*) 와 대응 되는데, 이것 만으로는 어디까지 $2 가 해당하는지 알 수 없다. 하지만 그 다음에 ' - Race ' 가 있기 때문에 이 이전까지가 $2 에 해당하게 된다.
  • 마지막으로 아무 글자 하나가 $3 에 대응된다. 그 이후의 '.mp4' 는 무시된다.
  • Target 에는 이 글자들을 원하는 대로 조합만 해주면된다. $3 이 $2 보다 앞에 있는 것을 확인할 수 있다.

어떤 의미로 Regular Expression 은 예술적이다. 이거 만든 사람은 노벨상 줘야 한다.(물론 농담 -_

아무튼, 이 좋은 기능을 파일 이름 변경에도 사용할 수 있고 미리보기 기능 때문에 regular expression 에 별로 익숙하지 않은 사람에게도 많은 도움이 되는 좋은 프로그램이다.

ps. Programmable Programming Language 라 불리우는 Lisp 같은 곳에서는 더더욱 막강하게 사용할 수 있을 것 같다는 생각이 드는데, 나중에 한번 찾아봐야겠다.

ps. 현실에서는 이런거 빨리 한다고 별로 알아주지도 않는다는게 문제일 듯 하다. 이걸로 5분 하고 3~4시간 노는 사람(혹은 자기 계발)보다, 이거 일일이 수정하면서 시간 낭비하느라 5~6시간 보내는 사람보고 더 노력했다고 칭찬하는 게 이 바닥이니 말이다. (상급자가 훌륭한 사람이라면, 얘기가 달라진다)

추천 태그



크리에이티브 커먼즈 라이센스
Creative Commons License
2010/02/04 23:31 2010/02/04 23:31

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다

  1. Subject: CedarLogic File Rename Utility 가 파일을 없애기만하고 리네임을...

    Tracked from A stupid man's diary 2011/01/13 15:39  삭제

    정규표현식을 이용해서 파일이름들을 변경하는 프로그램이 있길래 써봤다. (CedarLogic File Rename Utility) 파일을 없애기만하고 리네임을 안 하더라... 나바쁘다고 !!! 야근야근열매는 더이상 먹기 싫다고.. 유_유 삭제하려고 했는데 제어판에서 안 보이길래 설치폴더에 가봤다. (있었는데 못 봄) 리네임된 파일들이 요기잉네? 설치폴더에 있었다. ( C:\Program Files\CedarLogic\CedarLogic...

  2. Subject: GS test demo

    Tracked from GS test demo 2013/04/02 23:19  삭제

    Hybrid :: Regular Expression 을 사용한 파일 이름 바꾸기

댓글을 달아 주세요

  1. NhOne 2010/02/08 11:23  댓글주소  수정/삭제  댓글쓰기

    오......
    200개 파일의 이름을 변경하려다 구글링으로 찾아왔네요.
    그냥 다운받아서 쓰려다. 어려워서 설명읽고 잘 사용했습니다. ^^
    감사~

    • Hybrid 2010/02/08 14:08  댓글주소  수정/삭제

      매우 편리한 프로그램입니다.
      이 기회에 Regular Expression 에도 친해지시길....