正则表达式搜索多文件内容
来源:互联网 发布:禁止加载驱动软件 编辑:程序博客网 时间:2024/05/29 17:52
import os
import glob
import re
from optparse import OptionParser
def process_parameters():
usage = "usage: %prog [options] search_reg_pattern"
parser = OptionParser(usage)
parser.add_option("-f", "--file", dest="file", default="*", help="file name to search, glob format")
parser.add_option("-d", "--dir", dest="dir", default="./", help="dir")
parser.add_option("-r", "--recursive", action="store_true", dest="recursive", default=False, help="recursive search directory, not support yet")
parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=True, help="print none information during process")
parser.add_option("-t", "--tofile", dest="tofile", default=None, help="output whole line in the file")
parser.add_option("-m", "--mfile", dest="mfile", default=None, help="output matched partial string to the file");
return parser;
def find_file_text(pattern, dir, file, recursive, verbose, tofile, mfile):
if tofile:
tofile_path = dir + os.sep + tofile
tofile_handle = open(tofile_path, 'w')
if mfile:
mfile_path = dir + os.sep + mfile;
mfile_handle = open(mfile_path, 'w')
match_count = 0;
glob_str = dir + os.sep + file
if verbose:
print "find ", pattern, "in ", glob_str
for filename in glob.glob(glob_str):
if not os.path.isdir(filename):
file_obj=open(filename,'rU')
line_no=0
for eachline in file_obj:
line_no=line_no+1
matched_list = re.findall(pattern, eachline, re.M|re.I)
if matched_list:
match_count = match_count + 1;
if tofile:
tofile_handle.write(eachline+'\n')
if mfile:
for matched in matched_list:
mfile_handle.write(matched + '\n')
if verbose:
print "[%d] %s(%d):%s"%(match_count, filename, line_no, eachline)
if tofile:
tofile_handle.close()
if __name__ == "__main__":
parser = process_parameters()
(options, args) = parser.parse_args()
if len(args) == 0:
parser.error("incorrect number of arguments")
print options, args
find_file_text(args[0], options.dir, options.file, options.recursive, options.verbose, options.tofile, options.mfile)
import glob
import re
from optparse import OptionParser
def process_parameters():
usage = "usage: %prog [options] search_reg_pattern"
parser = OptionParser(usage)
parser.add_option("-f", "--file", dest="file", default="*", help="file name to search, glob format")
parser.add_option("-d", "--dir", dest="dir", default="./", help="dir")
parser.add_option("-r", "--recursive", action="store_true", dest="recursive", default=False, help="recursive search directory, not support yet")
parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=True, help="print none information during process")
parser.add_option("-t", "--tofile", dest="tofile", default=None, help="output whole line in the file")
parser.add_option("-m", "--mfile", dest="mfile", default=None, help="output matched partial string to the file");
return parser;
def find_file_text(pattern, dir, file, recursive, verbose, tofile, mfile):
if tofile:
tofile_path = dir + os.sep + tofile
tofile_handle = open(tofile_path, 'w')
if mfile:
mfile_path = dir + os.sep + mfile;
mfile_handle = open(mfile_path, 'w')
match_count = 0;
glob_str = dir + os.sep + file
if verbose:
print "find ", pattern, "in ", glob_str
for filename in glob.glob(glob_str):
if not os.path.isdir(filename):
file_obj=open(filename,'rU')
line_no=0
for eachline in file_obj:
line_no=line_no+1
matched_list = re.findall(pattern, eachline, re.M|re.I)
if matched_list:
match_count = match_count + 1;
if tofile:
tofile_handle.write(eachline+'\n')
if mfile:
for matched in matched_list:
mfile_handle.write(matched + '\n')
if verbose:
print "[%d] %s(%d):%s"%(match_count, filename, line_no, eachline)
if tofile:
tofile_handle.close()
if __name__ == "__main__":
parser = process_parameters()
(options, args) = parser.parse_args()
if len(args) == 0:
parser.error("incorrect number of arguments")
print options, args
find_file_text(args[0], options.dir, options.file, options.recursive, options.verbose, options.tofile, options.mfile)
- 正则表达式搜索多文件内容
- go语言文件正则表达式搜索
- C#正则表达式替换文件内容
- 使用正则表达式替换文件内容
- source insight用正则表达式搜索两个字符串,搜索内核动态打印的内容
- @搜索端口--正则表达式@
- 正则表达式 模糊搜索
- elipse搜索正则表达式
- grep 搜索 正则表达式
- MySQL 正则表达式搜索
- eclipse正则表达式搜索
- java 正则表达式 选择多行内容
- 正则表达式验证内容
- 正则表达式匹配文件内容,并打印匹配的行号
- 关于如何将文件内容提取(正则表达式)
- Vim多文件搜索特定内容
- Vim多文件搜索特定内容
- find搜索文件内容
- fopen,fgetc读取文件的用法
- linux下怎么安装nginx
- Android界面刷新的方法
- 史上最适用的最直观的CSS Hack参考手册
- XP安装SQL Server,错误提示“安装程序无法获取ASPNET账户的系统账户信息 ”
- 正则表达式搜索多文件内容
- Windows+cygwin下构造arm-linux交叉编译环境最简单的方法
- MyEclipse8.5安装反编译插件
- 赵老师的关于linux的函数
- android之Service学习——音乐播放器
- eclipse智能提示
- nm命令显示的符号类型
- fopen函数
- sql 将一个表中的数据插入到另一个表中