`` findx``,一个扩展的``find``命令。

findx的Python项目详细描述


概述

findx是在 python语言作为find和其他unix工具的包装。find是 一个非常强大的工具,但是它本身就有很多争论 典型调用所必需的。findx为 调用find而不输入太多。

作为一个简单的例子,想象一下使用findxargsgrep搜索 通过一棵文件树。一个简单的调用可能是:

find -type f | xargs grep PATTERN

但是上面的调用不能正确处理带有空格或异常的文件 字符;将命令增长为:

find -type f -print0 | xargs -0 grep PATTERN

现在正确地处理了文件名,但是命令可能会搜索 一些无聊的文件。它也忽略了一些边界情况。你会的 可能希望包含xargs --no-run-if-empty以确保grep不是 在找不到文件时调用;您可能还希望遵循符号链接 作为文件;您可能希望跳过.git目录(例如)。 将这些添加到上面的命令中可以显著地提高性能:

find -L -name .git -prune -o -type f -print0 |
  xargs -0 --no-run-if-empty grep PATTERN

排除其他文件和目录后,可能添加 --color=autogrep调用,事情正在失控。 {TT1}$存在以使这种调用更简单。首先,findx知道 使用:需要-print0xargs -0--no-run-if-empty;这意味着 所有正确使用xargs的标准协议 收件人:

findx -L -name .git -prune -o -type f : grep PATTERN

要忽略的标准路径是通过-stdx

请求的
findx -L -stdx -type f : grep PATTERN

遵循指向文件的符号链接并仅生成文件是另一种常见的方法 要求;开关-ffx表示查找文件(以下符号链接) 同时排除一组预定义的目录和文件:

findx -ffx : grep PATTERN

将文件名管道到grep中是一种常见的模式,以至于-ffg开关 与-ffx : grep相同,将内容缩减为:

findx -ffg PATTERN

此外,ffxffg是^{tt1}的附加入口点$ 这会进一步降低成本:

ffx = findx -ffx
ffg = findx -ffg

在最常见的情况下,搜索文件树会减少到:

ffg PATTERN

有关详细信息,请参阅findx --help或阅读findx.py的顶部。

安装

在pypi中,通常是安装:

pip install findx

从源代码树中,通过:

python setup.py install

运行测试

安装任何开发要求:

pip install -r dev-requirements.txt

通过pytest运行测试:

pytest

更改

有关更改历史,请参见changes.rst。

许可证

findx根据mit许可证的条款分发;请参阅license.rst。 详细情况。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要一种简单的方法来创建用于排序的comparator类   java getReadableDatabase和getWriteableDatabase无法解析   查找列表<Long>中与某个元素对应的所有索引的java方法   安卓将视图添加到ViewFlipper会导致java。StackOverflowerr语言   java根据它所包含的长“curTime”类字段将N的列表拆分为24(小时)   Android N中的Java8流API   自动生成Java策略文件的安全性   垃圾收集鼓励Java中的主要GC(但不是STW GC)   java如何检查UDP服务器上侦听的客户端数量   在前一台主机被Datastax Java驱动程序关闭后,Cassandra尝试重新连接到下一台主机   java如何使用Spring Boot创建部分代理   java是否有一个网站或资源可以完全比较EJB版本   java无需使用第三方库从gradle生成输出   继承由于这个多态性的基本示例中的语法有什么不同吗?(爪哇)   java字符串数组中的空字符串   java为什么CMS中的初始标记阶段是串行的   为什么Lucene有时与InChIKeys不匹配?   安卓通知Java应用程序数据库中的更改   java如何将单个json对象值解析为按钮   java打印堆栈将运行时错误跟踪到文件