用正则表达式给终端文本着色。
grec的Python项目详细描述
用正则表达式给终端文本着色。
- 免费软件:GPL版本3
- 文档:https://grec.readthedocs.org。
功能
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包执行着色 因此支持以下颜色:grey,red,green, yellow,blue,magenta,cyan,white。
要只设置前景色,只需指定 颜色。要同时设置背景色,请将其添加到前景 颜色。使用引号或下划线防止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。