查找包含某字符串的文件
来源:互联网 发布:正则匹配ip端口号 编辑:程序博客网 时间:2024/06/04 21:16
想操作一个DbUtil类,现在要找出工程里,哪些方法使用了DbUtil类的方法。
一、不过刚好想试试python,就边查边写了python脚本来做。
思路是,找出工程中所有java文件,读取文件内容,如果找到com.util.DbUtil语句,就返回文件名。
代码:
# -*- coding: utf-8 -*-import osimport reimport codecs#找到所有文件def iter(path): for home, dirs, files in os.walk(path): for filename in files: yield os.path.join(home, filename)#找到使用该类的文件,用正则匹配def getfiles(filename,encode): filenames = [] path = "E:\\workspace\\" + filename for fullname in iter(path): if os.path.splitext(fullname)[1] == '.java': file = codecs.open(fullname, 'r',encode) for line in file: if re.match(r'.*com.util.app.DbUtil.*',line): filenames.append(fullname) break file.close() out = codecs.open('d:\\cfile\\'+filename+'.txt','w') print(filename,file=out) print(filenames,file=out) out.close() print(filename," ok")#由于几个工程使用编码不同(编码问题好坑),所以分两次查找,一类是utf-8,一类是gbk。if __name__ == '__main__': names = ['compensation','cost','shr_cost','social'] difnames = ['shr_compensation','shr_social'] for name in difnames: getfiles(name,'gbk') for name in names: getfiles(name,'utf-8')
最近喜欢尝试新东西,python还是挺好用的。不过编码还是要注意。用codecs库可以使用不同的编码方式。
二、发现Linux 命令更简洁。
寻找包含“com.util.app.DbUtil”的java文件,输出结果用awk分割,’:’前是文件路径,后面是匹配的文件行内容,最后把文件名追加到result中。
find . -name *.java | xargs grep "com.util.app.DbUtil" | awk -F ':' '{print $1}'>> result
interesting!
0 0
- Linux查找包含某字符串的文件
- 查找包含某字符串的文件
- 查找包含某字符串的文件
- 在所有文件中查找包含某字符串的文件
- Linux在文件夹中查找包含某字符串的文件
- linux 使用find命令查找包含某字符串的文件
- 查找包含指定字符串的文件
- Linux查找包含特定字符串的文件
- Linux 查找包含某个字符串的文件
- 查找包含某个字符串的所有文件
- Linux查找文件内容包含特定字符串的文件
- VB快速查找大型文件中包含的字符串
- Linux下查找包含字符串的文件命令
- find 查找包含指定字符串的文件,仅列出文件名
- 查找文件夹下包含指定字符串的文件名字
- Linux查找包含某些字符串文件的命令
- python实现查找文件名包含指定字符串的文件
- VB快速查找大型文件中包含的字符串
- 前端扫雷之XSS和CSRF攻击
- mysql基础
- Wamp server localhost 404 not found
- linux c 开发php7扩展
- 修改计算机MAC地址
- 查找包含某字符串的文件
- L2-002. 链表去重
- 七分钟带你读懂深度学习之什么是神经网络
- Mybatis-ObjectFactory
- linux命令详解之useradd命令使用方法
- 互联网定位技术小谈
- 36Kr常锋无人机-项目分析和投资决策要点
- 调用系统摄像头,设置头像
- 3月21号