14 个版本

0.4.4 2023 年 5 月 16 日
0.4.3 2023 年 5 月 16 日
0.4.2 2019 年 11 月 13 日
0.4.0 2018 年 5 月 3 日
0.1.1 2018 年 3 月 30 日

值格式化 中排名 #357

Download history 81/week @ 2024-07-08 4/week @ 2024-07-22

每月下载 85

MIT 许可证

98KB
512

pipecolor

终端过滤器,用于着色输出

Actions Status Crates.io codecov

描述

pipecolor 是一个终端过滤器,用于着色输出。您可以使用正则表达式自定义着色规则。

演示

demo

安装

发布页面 下载,并提取到 PATH 目录中。

或者您可以使用 cargo 进行安装。

cargo install pipecolor

将着色规则文件放入 ~/.pipecolor.toml

本仓库中的 sample/pipecolor.toml 是一个示例。

用法

pipecolor 可以通过管道接收输入,并着色输出。

$ cat sample/access_log | pipecolor -c ./sample/pipecolor.toml

可以指定文件名。

$ pipecolor -c ./sample/pipecolor.toml sample/maillog

如果输出被重定向到文件,则自动禁用着色。您可以使用 pipecolor --mode always 强制着色。

着色规则

请参阅示例规则 sample/pipecolor.toml

[[lines]]
    pat  = "^(.*?) .*? .*? \\[(.*?)\\] \".*?\" .*? .*? \".*?\" \"(.*?)\""
    colors = ["White", "LightGreen", "LightBlue", "Green"]
    [[lines.tokens]]
        pat   = "GET"
        colors = ["LightCyan"]
    [[lines.tokens]]
        pat   = "POST"
        colors = ["LightYellow"]
    [[lines.tokens]]
        pat   = "HEAD"
        colors = ["LightMagenta"]

lines.pat 是一个用于指定着色行的正则表达式。如果表达式匹配,则匹配的行将被着色到 lines.colors 中指定的颜色。

lines.colors 是一个颜色数组,第一个颜色用于着色整个行。其余颜色用于着色表达式中的捕获组。在示例中,整个行被着色为 白色,第一个被 (.*?) 捕获的组被着色为 浅绿色

lines.tokens 指定要着色匹配行的特殊令牌。

如果不需要任何令牌,则 tokens 可以是空列表。

[[lines]]
    pat  = "^(.*?) .*? .*? \\[(.*?)\\] \".*?\" .*? .*? \".*?\" \"(.*?)\""
    colors = ["White", "LightGreen", "LightBlue", "Green"]
    tokens = []

可用的颜色

以下是可以用的颜色。

  • 黑色
  • 蓝色
  • 青色
  • 默认
  • 绿色
  • 浅黑色
  • 浅蓝色
  • 浅青色
  • 浅绿色
  • 浅品红色
  • 浅红色
  • 浅白色
  • 浅黄色
  • 品红色
  • 红色
  • 白色
  • 黄色

依赖项

~7-18MB
~201K SLoC