平时经常需要在本地文件夹里找之前写的代码片段,在不借助工具的情况下一般是先搜内容,如果找到了适合的,再通过具体内容定位文件。
$ find . -type f -iname "*.sql" \-exec grep -i "create user" {} \;create user adencreate user DZPJ_XYZXYYcreate user EMRTESTcreate user user_bjyqcqcreate user ysx_wdcreate user zlsbxt$ find . -type f -iname "*.sql" \-exec grep -il "create user DZPJ_XYZXYY" {} \;./2020/user_dzpj.sql
解释一下上面的命令,首先通过 find 找到所有的 *.sql 文件,对每个文件执行 grep。-i 忽略大小写,如果找到匹配内容,再通过 -l 参数定位文件。最后打开文件查看具体的内容。这个办法比较原始,效率不高,特别是想找文件的时候,比较费劲,需要搜两遍。
因为有此需求,所以在网上搜索一番,碰巧找到一款工具可用于在本地搜索代码片段,以及代码所在的文件。
工具名称叫 Anytxt Search,下载地址:
https://anytxt.net/download/
工具支持 pdf、docx、epub、mobi 以及所有的纯文本文件和代码文件。工具支持的文件格式详细列表如下:
纯文本格式(txt、java、html 等)
Microsoft Outlook (eml)(测试版)
Microsoft Word (doc, docx)
微软 Excel (xls, xlsx)
微软 PowerPoint (ppt, pptx)
便携式文档格式 (pdf)
微软 OneNote(一)
电子书格式(mobi、epub 等)
Microsoft 编译的 HTML 帮助 (chm)
WPS 字格式 (wps)
WPS Excel 格式(等)
WPS PowerPoint 格式 (dps)
亚马逊 Kindle 格式 (awz, awz3)
程序运行后的界面如下:

程序默认会对硬盘中的所有文档后缀(.pdf .docx .txt)的文件进行扫描,生成全文本索引。如果想只对指定目录和特定文件后缀的文件生成索引,可以重建索引。比如我只添加了一个SQL目录,用来索引用过的SQL脚本:

这款工具很好地解决了文件内容搜索的难题,其出发点是代替以前的Google 桌面搜索。除了可用来搜代码,如果word、pdf等文档比较多,也可以试一下,默认索引就包含这些文件后缀,可以做到开箱即用。我是有特殊需求,只需要索引指定目录,不需要对全硬盘进行索引。




