出力に色を追加するために mvn (Apache Maven) をラップする bash スクリプトがあります。それが行うことの縮小版は次のとおりです。
mvn "$@" | sed -e "s/^\[INFO\] \-.*/$bldblu&$rst/g"
太字の$bldblu
青を表す ANSI カラー エスケープ文字で$rst
、色をリセットします。
私が抱えている問題は、mvn が改行で終わらない行を書き込むことがあるため、(私が知る限り) sed が入力を待機し続け、プロンプトを出力しないことです (Maven がハングしているように見えます)。 )。私はsedに追加しようとしまし-u
たが、それはsedが複数行をバッファリングするのではなく、行ごとのバッファリングを強制するだけです-私にとっては役に立ちません。
これまでのところ、これは私が思いついたものです:
mvn "$@" | perl -pe "$| = 1; s/^(\[INFO\] \-.*)/$bldblu\$1$rst/g"
-p
しかし、ここでの使用は正しくないと思います。何か助けはありますか?