本身寫的 根據編碼搜索文件的小工具

文件、目錄搜索的小工具java

用正則式限制文件名、關鍵字、目錄linux


開始是專門爲了搜索GBK和UTF8兩種編碼的文件,如今能夠制定多種編碼方式來搜索文件

本科生,代碼可能很不規範

由於windows下好像沒有grep,win7默認的搜索用起來也不習慣,search my file也不支持搜索中文,因此開始試着按本身想法嘗試寫這個東西用來搜源碼文件。git


作了個很粗陋的GUI,在缺乏-f參數時會啓動圖形界面github

https://github.com/wo4li2wang/MSearcherwindows

粗陋的成品工具

http://dl.vmall.com/c01z8rm42eui


參數

  -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 與 & | ^整合使用
lua


-f 表示目錄名spa

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

相關文章
相關標籤/搜索