用正则表达式给终端文本着色。

grec的Python项目详细描述


https://badge.fury.io/py/grec.pnghttps://travis-ci.org/brisad/grec.png?branch=masterhttps://pypip.in/d/grec/badge.png

用正则表达式给终端文本着色。

功能

grec类似于grep;区别在于 打印文件中的匹配行,grec使行着色。行 不相配的图案仍印,但没有颜色。

将此实用程序与其他类似实用程序区分开来的关键功能是 在没有 让以前匹配的颜色混乱在正则表达式之后 比赛。

快速启动

使用pip安装

pip install grec

打印log_file.txt的全部内容,但也要着色 出现任何错误和警告:

grec -m ERROR red -m WARN yellow log_file.txt

或使用管道:

cat log_file.txt | grec -m ERROR red -m WARN yellow -

要在python代码中为字符串着色,请使用 grec包:

>>> from grec import Matcher
>>> m = Matcher()
>>> m.add_pattern('ERROR', 'red')
>>> m.add_pattern('WARN', 'yellow')
>>> print m.match('ERROR WARN INFO')
ERROR WARN INFO  (with color)

命令行

命令行界面如下:

grec [-m PATTERN COLOR_INFO] [-g PATTERN [COLOR_INFO ...]] -- file

-m参数

此参数接受正则表达式和颜色信息。 下面是一个示例,它将使所有行以字符开头 “”为绿色,背景为白色:

-m '^#.*' green_on_white

每当一行与正则表达式匹配时,该行的部分 匹配的是用颜色信息着色的。任何数量的 -m参数可以指定,并且颜色化将应用于 命令行中指定的顺序。

正则表达式将由re模块匹配。所以为了 每个正则表达式,只有不重叠的匹配将 彩色的。若要获得重叠匹配,请通过添加 更多的参数。

颜色信息由前景和可选的 背景。使用termcolor包执行着色 因此支持以下颜色:greyredgreenyellowbluemagentacyanwhite

要只设置前景色,只需指定 颜色。要同时设置背景色,请将其添加到前景 颜色。使用引号或下划线防止shell 把它解释为几个论点。示例:

-m <regex> blue_on_yellow
-m <regex> blue_yellow
-m <regex> 'blue on yellow'
-m <regex> 'blue yellow'

-g参数

这个参数与-m相似,但不同的是 为整个匹配着色,这将创建一个仅 使正则表达式的匹配组着色。

因为一个正则表达式中可以有多个组,所以 参数接受多种颜色。这里有一个例子 在白色背景上用绿色将第一组和 第二个,前景为黄色:

-g '^(#)(.*)' green_on_white yellow

如果正则表达式中的组的颜色多于 指定时,将忽略它们。如果颜色数小于 组中,为图案指定的最后一种颜色将用于 为所有剩余的组匹配项上色。

file参数

这是要着色的文件。如果指定“-”,则 改为读取,可用于为管道的输出着色。

如果没有给定文件,则默认使用stdin

待办事项

  • 添加对闪烁等属性的支持
  • 添加仅从cli更改背景色的支持
  • python 3支持

历史记录

0.2.0(2014-10-14)

  • 在正则表达式中添加了对着色组的支持

0.1.0(2014-09-26)

  • 第一个版本是pypi。

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

推荐PyPI第三方库


热门话题
Java岩石、布、剪刀程序,带文件输入   java迭代Hashmap中的值列表   数组不能正确循环   JavaHibernate:对于一个遥远的惰性依赖,有一个渴望的获取者吗?   交通阻塞下的java车辆路径选择   如何在java中创建布尔方法来检查添加到具有特定索引的arraylist的对象   java Tomcat配置文件/上下文xml似乎已经崩溃了。请确保它是可分析和有效的。有关详细信息,请参阅服务器日志   为什么坐标有时相等,有时不相等?   java libgdx CameraInputController过于敏感,平移开始得太早   将C++排序函数移植到java   java应该是十进制的   swing Java JFrame中的所有内容都不可见   java使用数组中除一个元素以外的所有元素   从子类运行构造函数的Java