:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/07/28 23:31
프로그램 코딩때문에 이러저러한 텍스트 에디터를 써보았지만, 그런 기능이 있는 텍스트에디터는 본적이 없네요.
불러들인 여러 텍스트 파일들을 한번에 한번씩만 바꾸는 기능은 있어도... 말씀하신 기능은 텍스트 에디터로써의 기능이 아닌 어플리케이션 툴 같아요.
10/07/29 00:06
89197728843님// 답변 감사드립니다...^^;;
열심히 검색해서 몇가지를 찾았는데... 아크로에디트란 에디터의 스크립트로 기능을 만들어서 쓰는 방법이 있더군요. 모 한글화팀 카페에서 필요에 의해서 유저가 등록한 단어 리스트대로 치환해주는 간단 툴도 있고요. 저는 아크로에디트의 스크립트를 사용해서 써야할 거 같습니다;;
10/07/29 00:37
제가 답 달고 로그인 풀린 사이에 질문하신 분이 방법을 찾으셨네요. 혹시 이게.. 프로그래밍과 관련된 것인지요?
프로그래밍은 텍스트 프로세싱입니다. 리눅스엔 텍스트 프로세싱에 특화된 툴이 많이 있고요. 이 툴들 하나하나를 엮어서 전체 작업에 사용하기 쉽도록 script language들도 많습니다. sed가 한 파일 내의 한 패턴을 다른 패턴으로 전역 치환 해주니, 이 sed 명령을 bash shell의 for-loop으로 돌려서 연속적으로 입력하면 자동화할 수 있습니다. 윈도우즈도 그 비슷한 기능이 있을 거에요. GUI 없이 커맨드라인으로만 모든 게 처리 가능한 툴 + batch file의 문법 지원이 있으면 이런 작업들이 쉽게 가능합니다. 실제로 모든 종류의 텍스트 프로세싱에선 이런 방식이 상당히 유용하고요. 프로그래머라면 알면 좋은 스킬인 것 같습니다.
10/07/29 08:36
특정한 패턴을 찾아서 바꾸는 것은 PERL 이 좋습니다. 리눅스에는 기본으로 깔리지만, 윈도즈용도 쉽게 찾을 수 있습니다. 저는 ActivePerl 5.10.1 을 쓰고 있습니다.
정규 표현식(regular expression)에 대해 조금 공부하셔야 하는데, 매우 강력합니다. 간단한 예제를 보여드리면, #! /usr/bin/perl -w open(INF, $ARGV[0]); # command line에서 받은 이름으로 input file을 엽니다. open(OUTF, ">".$ARGV[1]); # output file을 엽니다. while ($line = <INF>) # input file로 부터 1 라인을 읽어서,
/AAA/g; # 3개 이상의 연속되는 A를 3개의 A로 바꿉니다.
$line =~ s/abc/def/g; # abc라는 pattern을 def로 바꿉니다. 가장 단순한 형태입니다. $line =~ s/A{3, $line =~ s/(S+)ab(S+)/$1cd$2/g; # 화이트 스페이스로 둘러싸인 ab를 cd로 바꿉니다. print OUTF $line; # output file 에 수정된 결과를 씁니다. }
|