首页 > 代码库 > 自己写的 根据编码搜索文件的小工具
自己写的 根据编码搜索文件的小工具
文件、目录搜索的小工具
用正则式限制文件名、关键字、目录
开始是专门为了搜索GBK和UTF8两种编码的文件,现在可以制定多种编码方式来搜索文件
本科生,代码可能很不规范
因为windows下好像没有grep,win7默认的搜索用起来也不习惯,search my file也不支持搜索中文,所以开始试着按自己想法尝试写这个东西用来搜源码文件。
https://github.com/wo4li2wang/MSearcher
参数
? -f ?搜索的文件夹,可以用正则式表示
? -k ?搜索文件包含的关键字,可以用正则式表示,没有这个参数则根据n参数搜索匹配的文件名
? -n ?文件名,可以用正则式表示,如果为空则视为 .(匹配任何文件)
? -s ?单独列出名字含有关键字的文件和目录
? -i ?忽略正则式的大小写
? -e ?限制编码方式,没有这个参数默认同时支持GBK和UTF8(先根据GBK查找,然后用UTF8查找),多个编码用‘&‘连接
特殊符号
? & ?连接多个参数表示存在这些参数中的一个即匹配, 如 -k &haha&hehe 匹配包含 haha 或者包含 hehe 的文件
? | ?连接多个参数表示必须存在这些参数, 如 -k |haha|hehe 匹配同时含有haha和hehe的文件,同时出现‘&‘和‘|‘,以‘|‘为准
? ^ ?连接多个参数表示不允许存在的参数, 如 -k &haha&hehe^hoho 匹配包含 haha 或者包含 hehe 但不允许出现 hoho 的文件
注意:
? windows的console 中‘&‘ ‘|‘ ‘^‘ 要用 ‘^&‘ ‘^|‘ ‘^^‘ 表示
? linux的terminal 中‘&‘ ‘|‘ ‘^‘ 要用 ‘&‘ ‘|‘ ‘^‘ 表示
关键词 -f -n -k 与 & | ^整合使用
-f 表示目录名
-f C:\a\&C:\b\ 表示在这两个文件夹下搜索
-f C:\a\&C:\b\|..理工 表示在这两个文件夹下搜索,只搜索其中名为‘XX理工‘的文件夹
-f C:\a\&C:\b\^..理工 表示在这两个文件夹下搜索,跳过名为‘XX理工‘的文件夹
-n 表示文件名
-n &.*?\.txt&.*?\.lua 表示搜索文件后缀可以为txt或lua中的一个
-n ^.*?\.txt^.*?\.lua 表示搜索文件后缀不能为txt或lua,同时出现&和^以 ^优先
-k 表示关键字
-k &武汉&理工 表示搜索文件内容包含‘‘武汉和‘理工‘的文件,出现任意一个关键词即可
-k |武汉|理工 表示搜索必须包含‘‘武汉和‘理工‘的文件,同时出现&和|以 |优先
-k &武汉&理工^马房山 搜索包含‘‘武汉和‘理工‘,但不许出现‘马房山‘字样的文件
例子
在testFolder目录下搜索名字由字母组成并带字母后缀的文件
? java -jar MSearcher.jar -f C:\testFolder -n [a-zA-Z]+.[a-zA-Z]+
在testFolder目录下搜索任何包含java(-i不区分大小写)字样的文件
? java -jar MSearcher.jar -f C:\testFolder -k java -i
在testFolder目录下搜索任何包含‘理工‘字样的文件,只用GBK和GB2312两种编码方式读取文件内容
? java -jar MSearcher.jar -f C:\testFolder -k 理工 -e GBK&GB2312
在testFolder目录下搜索包含‘武汉理工大学‘字样的文本(默认支持GBK和UTF8),并列出名字包含‘武汉理工大学‘字样的文件和目录(-s参数)
? java -jar MSearcher.jar -f C:\testFolder -n . -k 武汉理工大学 -s
在C:\testFolder和C:\testFolder2两个目录下搜索 txt或者lua 格式的文件 ,包含关键字‘武汉理工大学‘或者包含‘泰晤士报‘,但不允许出现‘空调字样‘的文件
? java -jar MSearcher.jar -f C:\testFolder&C:\testFolder2 -n .?.txt&.?.lua -k 武汉理工大学&泰晤士报^空调
注意:
1.空格只是为了看起来明显,解析时参数可以不用空格隔开。
2.关键字(-f -n -k 这些参数后面的搜索内容)中出现 % & | ^ - 这些特殊符号要用 %% %& %| %^ %- 来转义表示
? 比如 java -jar MSearcher.jar -f C:\testFolder -n .* -k 武汉理工%&大%^学 表示搜索的关键字为 武汉理工&大^学
(正在做还没做完)
3.后续想添加 -c 参数,支持在压缩文件(rar、zip、tar.gz)中搜索压缩的文件
4.后续想添加 -u 限制文件的修改时间, -l 限制文件的大小
5.正在做GUI,在没有-f参数的情况下启动gui界面
自己写的 根据编码搜索文件的小工具