包含 Python 文件的 Fabfile(目录):
print "DEBUG fab_helper DRYRUN: True"+var
print "DEBUG fab_helper DRYRUN: True"
#print "DEBUG cfn_stackname: "+cfn_stackname
到:
LOGGER.DEBUG("DEBUG fab_helper DRYRUN: True"+var)
LOGGER.DEBUG("DEBUG fab_helper DRYRUN: True")
LOGGER.DEBUG("DEBUG cfn_stackname: "+cfn_stackname)
如何用我的记录器模块替换所有这些条目?我应该使用 vim 还是 sed?
答案1
我认为第二行的缺失和第三行的)
重复是转录错误?"
sed 's/^#*print \(.*\)/LOGGER.DEBUG(\1)/' ujjain
LOGGER.DEBUG("DEBUG fab_helper DRYRUN: True"+var)
LOGGER.DEBUG("DEBUG fab_helper DRYRUN: True")
LOGGER.DEBUG("DEBUG cfn_stackname: "+cfn_stackname)
答案2
awk '{$1="";print $0}' filename|sed "s/^/LOGGER.DEBUG\(/g"| sed "s/$/)/g"
输出:
LOGGER.DEBUG( "DEBUG fab_helper DRYRUN: True"+var)
LOGGER.DEBUG( "DEBUG fab_helper DRYRUN: True")
LOGGER.DEBUG( "DEBUG cfn_stackname: "+cfn_stackname)
答案3
使用 Vim:加载所有 py 文件vim *.py
,然后执行以下操作:
:bufdo %s/^ *#\?print \("DEBUG .*\)$/LOGGER.DEBUG(\1)/
该命令对每个加载的文件:bufdo
运行替换命令 ( )。%s/...
看:help :bufdo
。