전체 (349)
I.../ETC (99)
Computer (184)
Physics/Mathematics (33)
Music (33)
USB스틱에 넣어 다닐 수...
The Codex of Nature
아이폰으로 구글 통계를...
바람이 분다
Line Counter 1.1
ultragom
엔하늘의 생각
nala2sky's me2DAY
EJ의 생각
bluecube's me2DAY
2010/02/04 23:31

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 은 예술적이다. 이거 만든 사람은 노벨상 줘야 한다.(물론 농담 -_-ㅋ) 예전에 Visual Studio 에서 사용할때는 매크로 대용으로 실제 코드를 만들 때 사용했는데, 역시 그 곳에서도 굉장한 작업을 쉽게 코드로 바꿔줬다. 최근에는 테스트용 코드를 기존 코드 사이에 넣어뒀는데, 이런 코드들도 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
Imagination is more important than knowledge
- Albert Einstein
Trackback Address :: http://www.hybrid.pe.kr/tt/trackback/512
NhOne | 2010/02/08 11:23 | PERMALINK | EDIT/DEL | REPLY
오......
200개 파일의 이름을 변경하려다 구글링으로 찾아왔네요.
그냥 다운받아서 쓰려다. 어려워서 설명읽고 잘 사용했습니다. ^^
감사~
Hybrid | 2010/02/08 14:08 | PERMALINK | EDIT/DEL
매우 편리한 프로그램입니다.
이 기회에 Regular Expression 에도 친해지시길....
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
◀ PREV  *   #1  #2  #3  #4  #5  ... #349   *  NEXT ▶
«   2010/02   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28            
총 방문 : 445819
오늘 : 87 , 어제 : 445



web counter
Computers Blogs - Blog Top Sites