2019独角兽企业重金招聘Python工程师标准>>>

文件、目录搜索的小工具

用正则式限制文件名、关键字、目录

开始是专门为了搜索GBK和UTF8两种编码的文件,现在可以制定多种编码方式来搜索文件

本科生,代码可能很不规范

因为windows下好像没有grep,win7默认的搜索用起来也不习惯,search my file也不支持搜索中文,所以开始试着按自己想法尝试写这个东西用来搜源码文件。

做了个很粗陋的GUI,在缺少-f参数时会启动图形界面

https://github.com/wo4li2wang/MSearcher

粗陋的成品

http://dl.vmall.com/c01z8rm42e

参数

  -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 的文件,出现在-f参数后面如果为路径表示排除路径,为目录名则是排除所有这个名字的目录

注意:
  windows的console 中'&' '|' '^' 要用 '^&' '^|' '^^' 表示
  linux的terminal 中'&' '|' '^' 要用 '&' '|' '^' 表示

关键词 -f -n -k 与 & | ^整合使用


-f 表示目录名

    -f C:\a\&C:\b\                     表示在这两个文件夹下搜索

    -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界面

转载于:https://my.oschina.net/tdONEmadao/blog/342102

自己写的 根据编码搜索文件的小工具相关推荐

  1. python编写数据库连接工具_详解使用Python写一个向数据库填充数据的小工具(推荐)...

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...

  2. Java 文件传输小工具,网络传输文件,内网传输

    文件传输小工具,网络传输文件,内网传输 换了一台电脑,想把一台电脑的资料放到另一太电脑上,由于没有太大的U盘就动手用Java写了个小工具.有需要的朋友下载使用! 运行环境 运行环境需要安装JDK,并配 ...

  3. Aveiconifier是一个非常实用方便的制作ico格式文件的小工具~

    本文地址:http://www.jb51.net/article/8314.htm Aveiconifier是一个非常实用方便的制作ico格式文件的小工具~ 也许有一些对网页知识不是很了解的网友并不清 ...

  4. 批量复制文件名-修改文件路径小工具

    简介: 批量复制文件名,文件路径小工具.昨天偶然得到的一个小工具,非常非常高效. 支持跨目录复制! 网盘下载地址: http://kekewl.cc/AOUF6Q5XVNn0 图片:

  5. 在windows下实时监控、接受文件变化小工具

    在windows下实时监控文件变化小工具 在测试的时候,我们可能想实时监控系统打出的log信息,在unix系统上我们可以用"tail -f"实现,在windows下一般就无法做到实 ...

  6. linux dwg查看软件下载,CAD迷你看图 - DWG文件浏览小工具

    CAD迷你看图是一款DWG文件浏览小工具,软件支持AutoCAD DWG/DSF等常用图纸文件,运行速度很快,并提供了DWG图形的平移.缩放.全屏等常用功能.绿盟这里为大家整理了这款软件的各个版本,有 ...

  7. 高德地图 SDK集成 定位 地理编码 搜索 经纬度获取 功能工具类

    最近项目要集成高德地图,然后可以根据语音输入指令,进行定位和地理编码搜索功能,从而实现获取当前位置经纬度和根据地址获取经纬度的功能 下载文件之只放了libs和主要代码文件 https://downlo ...

  8. excel文件合并小工具

    文章目录 前言 一.基本思路 二.编码实现 三.使用测试 界面如图所示 功能测试 前言 写这个小工具的原因是因为在工作中需要将两个excel里面的数据合并一个新的文件,起初尝试通过WPS进行合并,但是 ...

  9. 用C#.NET 与Webdriver写的抓取网页信息的小工具

    最近,女友的妹妹要去网上找房产中介人信息用于招聘,自己去网上一个一个找太慢,我女友知道我是搞IT的就请教我有没有办法帮她快速找电话号码,于是我就想到了爬虫程序,然后普通的爬虫代码有限制,刚好自己在搞自 ...

最新文章

  1. Numpy 中的 arange 函数
  2. gluPerspective和gluLookAt的关系
  3. [Rails.Test.Prescriptions]系列之一:0基础的Test Rails...
  4. 史上最全Winform中使用ZedGraph教程与资源汇总整理(附资源下载)
  5. 基于Topic消息路由的M2M设备间通信Node JS SDK 示例
  6. python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
  7. c语言 对排两个答案文件
  8. 用springMVC拦截器实现操作日志管理功能
  9. EDA发展历史及现状
  10. 安川机器人外部急停信号点不开_安川机器人示教器常见故障维修方法
  11. python 删除word 某一章节_聊聊python 办公自动化之 Word(中)
  12. 一篇文章带您秒懂地理标志商标注册
  13. 自定义View: 九宫格图形解锁(Kotlin版)
  14. 2022天梯赛 L1-086 斯德哥尔摩火车上的题
  15. 前领导想挖我去新公司,有坑吗?
  16. 7-2 531 字符串_小写变大写
  17. 手机敬业签App怎么快速添加便签内容?
  18. app上架360手机助手流程
  19. Python爬虫百度云加速验证码问题
  20. 2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题一python代码实现(更新完毕)

热门文章

  1. EL表达式中fn函数(转载)
  2. 机器视觉和Tesseract
  3. chrome console js多行输入
  4. Extjs time
  5. hdu-4451-Dressing
  6. 类型缩放Google map 地图类型
  7. CString之GetBuffer、ReleaseBuffer
  8. C#代码创建Xml文件
  9. c#如何跨线程调用窗体控件
  10. SQL注入——基于联合查询的字符型GET注入(三)