Metadata-Version: 2.1
Name: findkw
Version: 0.3.3
Summary: find the files or words
Home-page: https://github.com/ga1008/finder
Author: Guardian
Author-email: zhling2012@live.com
Maintainer: Guardian
Maintainer-email: zhling2012@live.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE

这是做什么的？
=======================
这是一个任意文件查找器，支持文件夹，文件名以及文件内容的关键字查找，支持正则模式，并且用突出颜色显示

怎么安装？
=========
pip install findkw

怎么使用
=========

### 1. 在终端直接使用：

```
$ findkw -k "要查找关键字" [-f --folder] [-o --filename_only] [-r --re_mode]
```

#### 参数解释：

##### -h, --help          ---> 显示帮助

##### -k, --keyword       ---> 要查找的关键字，必须值

##### -f, --folder        ---> 需要查找的文件夹，默认在运行目录下

##### -r, --re_mode       ---> y/n 是否以正则方式查找，默认n，可不指定参数值

##### -o, --filename_only ---> y/n 是否只查找文件夹名和文件名，默认n，可不指定参数值  

##### -rmf, --remove_file ---> y/n 是否删除找到的文件，默认n，可不指定参数值  

##### -rml, --remove_line ---> y/n 是否删除找到的行，默认n，可不指定参数值  

##### -qr, --quietly_remove ---> y/n 是否不经确认直接删除，默认n，可不指定参数值  

##### -rt, --replace_to ---> 替换为，支持 python re.sub 的操作  


#### 示例：

```shell script

# 当前文件夹下查找所有符合关键字的文件内容
$ findkw -k "good job"
# in file [ /root/Findkw/README.md ]: 
# >>> [ 36 ] [ $ findkw -k "good job" ]

# 上面输出的是当前 README 文件的第36行，找到了需要的关键字

# 在指定文件夹下查找关键字：
$ findkw -k "nice job" -f "/root/search_folder"

# 在当前文件夹下查找带有关键字的文件夹名或者文件名：
$ findkw -k "findkw" -o
# >>> [ folder ] [ /root/Findkw/findkw.egg-info ]
# >>> [ folder ] [ /root/Findkw/build/lib/findkw ]
# >>> [ file name ] [ /root/Findkw/findkw/findkw.py ]
# >>> [ folder ] [ /root/Findkw/findkw ]
# ...

# 正则模式查找所有以 .py 结尾的行：
$ findkw -k ".*?\.py$" -r
# in file [ /root/Findkw/findkw.egg-info/SOURCES.txt ]: 
# >>> [ 2 ] [ setup.py ]
# >>> [ 3 ] [ findkw/__init__.py ]
# >>> [ 4 ] [ findkw/findkw.py ]

# 正则模式查找所有以 .py 结尾的文件夹和文件名：
$ findkw -k ".*?\.py$" -r -o
# >>> [ file name ] [ /root/Findkw/setup.py ]
# >>> [ file name ] [ /root/Findkw/build/lib/findkw/findkw.py ]
# >>> [ file name ] [ /root/Findkw/build/lib/findkw/__init__.py ]
# >>> [ file name ] [ /root/Findkw/findkw/findkw.py ]
# >>> [ file name ] [ /root/Findkw/findkw/__init__.py ]

# 正则模式查找所有带有 0.1 版本字样的行：
$ findkw -k "[Vv]ersion[\': ]+0\.1\.\d" -r
# in file [ /root/Findkw/setup.py ]: 
# >>> [ 8 ] [ 'version': '0.1.0', ]

# in file [ /root/Findkw/findkw.egg-info/PKG-INFO ]: 
# >>> [ 3 ] [ Version: 0.1.0 ]

# 正则替换行，只保留匹配到的数字，加参数 -qr 是静默更改模式，不会出现提示：
$ findkw -k "VERSION\.(\d+)" -rt "\1" -r -qr
# line [ 19 ]: "VERSION.123" ✘
# replace to
# line [ 19 ]: "123" ✔


```


### 2. 在代码中调用：

#### 下载 Finder/findkw/findkw.py 文件到你的代码目录中

```
from findkw.findkw import Finder

folder = "/root/search_folder"
kw = "正则表达式或者关键字"
fn_only = False     # 如果只返回文件夹或文件夹名则 True
re_mode = False     # 如果kw是正则表达式则 True

fd = Finder(folder, kw, fn_only, re_mode, True)
res = fd.start()

print(res)
```

