自己写的 根据编码搜索文件的小工具
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
總結
以上是生活随笔為你收集整理的自己写的 根据编码搜索文件的小工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曾致135人死亡 印度断桥事故调查报告出
- 下一篇: 站长如何拥抱腾讯云大生态