我们有一个非常并行化的构建过程,所以我经常需要浏览javac的大量输出来查找构建错误。
为了使这更容易,如果有一些工具将javac的输出着色到我的终端,突出显示代码中的错误会很好。
我可以用什么工具来着色javac的输出?
答案 0 :(得分:0)
使用 grep 和“--color”选项?
~$ javac Test.java 2>&1 | egrep --color "^|error"
答案 1 :(得分:0)
我最终使用了一个名为Generic Colorizer Tool的工具,并编写了我自己的配置,用于着色最重要的输出。工作得很好。 :)
答案 2 :(得分:0)
使用readfile
和substitute
意识形态:
#1. Do your javac and pipe the result to a file:
javac whatever.java 2>/tmp/javac_errors.out;
#define the escape start and stop codes that your terminal
#uses to apply foreground and background color:
let redbackground = '\\e[48;5;196m'
let normalbackground = '\\e[0;0m'
#iterate the lines in the saved file:
for line in readfile("/tmp/javac_errors.out")
#Use sed, match, substitute or whatever to regex substitute
#the text with the text surrounded by the color escape codes
#find and replace the text 'error:' with the same surrounded by escape codes
let line = substitute(line,
'error:',
redbackground .
'error:' .
normalbackground, 'g')
#use echo -e flag to tell the terminal to interpret the escape codes:
echo -e line
endfor
此代码与上面的代码相同,但是它使用了终端线路迭代器和sed
替换思想:
#run javac pipe to file
javac whatever.java 2>/tmp/errors.out
#Define terminal color codes
redbackground='\\e[48;5;196m'
normalbackground='\\e[0;0m'
#read the file and print out each line
filename="/tmp/errors.out"
while read -r line; do
#replace error surround with escape codes
line=`sed "s/error:/${redbackground}error:${normalbackground}/g" <<<"$line"`
echo -e "$line"
done < "$filename"