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 • Rust 包仓库 81/week @ 2024-07-08 • Rust 包仓库 4/week @ 2024-07-22 • Rust 包仓库

每月下载 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