Maven - 在 grep 搜索中忽略 ANSI 颜色转义字符

Maven - 在 grep 搜索中忽略 ANSI 颜色转义字符

我发现有时mvn输出中的 ANSI 转义字符会阻止我使用 grep 进行此搜索:

mvn | grep -P "\[INFO\]"

我必须用它"\[.*INFO.*\]"才能得到结果。

如何禁用处理 ANSI 转义字符?我认为有一些配置可以实现这一点?

答案1

mvn还有--batch-mode-B),它使输出更适合例如 CI 或像这样的搜索,因为它更加自动化。

或者,一个通用的解决方案是,使用以下任何命令去除 ANSI 颜色ansi2txt工具,它是彩色日志包裹:

mvn | ansi2txt | grep -P "\[INFO\]"

答案2

似乎mvn有一个配置-Dstyle.color=auto可以忽略 ANSI 颜色转义字符,这样我就不需要改变脚本中的模式来添加.*

# define an alias including the color settings
$ alias mvn='/opt/data/maven/bin/mvn -Dstyle.color=auto'

# use the alias in the script
$ mvn | grep -P "\[INFO\]"
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.132 s
[INFO] Finished at: 2023-05-25T14:05:13+03:00
[INFO] ------------------------------------------------------------------------

相关内容