'현 디렉토리 밑에 모든 파일에서 특정 문자열을 발견하면 그 문자열 밑에 특정 줄을 추가하라' 라는 조건을 충족시키기 위해서 Perl 과 awk, sed 등 여러가지 스크립트 언어들을 갖고 고민하던 중 다즐링 형님의 도움을 얻어서 Python을 이용하여 처리할 수 있었습니다.
Python을 처음 다루다보니 몇가지 구문의 실수로 인해서 고생은 했지만 무난히 수정해낼 수 있었습니다. ^^
특정구문 넣기 소스
오늘은 야근인 관계로 분석은 다음 기회에~ ^^
Python을 처음 다루다보니 몇가지 구문의 실수로 인해서 고생은 했지만 무난히 수정해낼 수 있었습니다. ^^
특정구문 넣기 소스
#!/usr/bin/python특정구문 빼기 소스
import sys , os
from cStringIO import StringIO
if len(sys.argv) < 2:
print "error! example) repl.py directory"
raise SystemExit
fileslist = os.popen("find %s -iname '*.asp'" % sys.argv[1]).readlines()
for fn in fileslist:
# make backups
fn = fn.strip()
os.system( "cp -f %s %s" % ( fn , fn + ".bak") )
nf = StringIO()
lineno = 0
for c in open(fn):
if "<body" in c:
nf.write(c)
nf.write("<div id='zoomCtrl' style='position:absolute;top:0px;left:0p;'><!-- Space Zoom start-->")
os.system( "echo FILE:%s LINENO:%s >> header.log" % ( fn , lineno ) )
elif "</body>" in c:
nf.write("</div> <!-- Space Zoom End -->")
nf.write(c)
os.system( "echo FILE:%s LINENO:%s >> footer.log" % ( fn , lineno ) )
else:
nf.write(c)
lineno += 1
nf.seek(0)
open(fn,'w').write(nf.read())
#!/usr/bin/python
import sys , os
from cStringIO import StringIO
if len(sys.argv) < 2:
print "error! example) repl.py directory"
raise SystemExit
fileslist = os.popen("find %s -iname '*.jsp'" % sys.argv[1]).readlines()
for fn in fileslist:
# make backups
fn = fn.strip()
os.system( "cp -f %s %s" % ( fn , fn + ".bak") )
nf = StringIO()
lineno = 0
for c in open(fn):
if "<div id='zoomCtrl' style='position:absolute;top:0px;left:0p;'><!-- Space Zoom start-->" in c:
os.system( "echo FILE:%s LINENO:%s >> header.log" % ( fn , lineno ) )
elif "</div> <!-- Space Zoom End -->" in c:
os.system( "echo FILE:%s LINENO:%s >> footer.log" % ( fn , lineno ) )
else:
nf.write(c)
lineno += 1
nf.seek(0)
open(fn,'w').write(nf.read())
오늘은 야근인 관계로 분석은 다음 기회에~ ^^



댓글을 달아 주세요