많은 문서 파일 다루기

ascii 코드로된 text 파일은 다루기가 상당히 편리하다. ASCII code라는 게 알파벳만 취급한다는 것이 답답한 일이긴 하지만, 한국 사람들이 가장 먼저 컴퓨터 코드를 결정해서 만들어넣지 않았으니 할 수 없지 싶다. regex만 잘 쓰면 아무리 많은 문서든 아무리 대용량의 텍스트든 전부 대응이 가능하다. regex는 정말로 인류가 만들어낸 수많은 발명 중에 하나라고 꼽고 싶다. 도무지 regex로 내가 절약한 시간이 얼마나 많은지.

문제는 이런 파일이 아닌 xls, doc, xlsx, docx 같은 파일들을 다뤄야 하는 경우다. 이를테면 이런 파일이 수도 없이 많은데, 그 안에서 특정 문자열만 찾아내서 바꿔치기 하는 것을 해야 한다고 하면, 사람이 다 할 수가 없다. 뭐 아침에 출근해서 저녁에 퇴근할 때까지 하겠다고 해도 사람이란 게 실수라는 것을 하기 마련이라 완벽하게 해내긴 쉬운 일이 아니다. 또 완벽하게 해냈다고 해서 완벽하단 소릴 들을 만큼 대단한 일을 한 것도 아니다.

더구나 이들 파일을 열어서 뭔가를 하겠다고 하면 애플리케이션 자체가 다국어를 지원하고 있는 것이라 기본적으로 2byte 코드를 사용한다. 또 어떤 언어를 위해 인코딩되어있는지도 확인해서 대응을 해야한다. UTF8을 일종의 표준으로 삼아서 가고 있다고는 하지만 그렇지 않은 문서도 수도 없이 많다.

결국 다국어에 대한 검색 및 수정은 쉽지 않다. 다만 ascii code만을 찾아내서 수정하겠다고 하면 perl을 권장 드린다. perl과 regex를 섞어서 쓰고 SpreadSheet 패키지를 가져다 쓰면 원하는 문자열 혹은 셀만 찾아서 수정할 수 있다. 물론 무한대 개수의 파일들을 recursive하게 처리할 수 있는 것도 다 perl이 잘한다. 윈도우즈만 빼고 perl은 거의 모든 OS에서 기본으로 설치되는 프로세서이기도 하고.