我发现有时,mvn输出中的 ANSI 转义字符会阻止我使用 grep 进行此搜索:
mvn | grep -P "\[INFO\]"
Run Code Online (Sandbox Code Playgroud)
我必须使用"\[.*INFO.*\]"才能得到结果。
如何禁用 ANSI 转义字符的处理?我想这有一些配置吗?
Des*_*666 10
mvn也有--batch-mode( -B),这使得输出更适合 CI 或像这样的搜索,因为它更加自动化。
或者,一个通用的解决方案是使用ansi2txt工具在任何命令中去除 ANSI 颜色,该工具是colorized-logs包的一部分:
mvn | ansi2txt | grep -P "\[INFO\]"
Run Code Online (Sandbox Code Playgroud)
似乎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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |