maven の colorize スクリプトの中核として、いくつかの置換コマンドを実行します。コマンドの 1 つは、こちらで説明されsed
ているように、シェル内で機能する正規表現を使用します。現在の (動作していない) 実装は、ここにあります。
コマンドのバリアントの 1 つをスクリプトに含めると、異なる動作が発生します。
バリエーション 1:
$ sed -re "s/([a-zA-Z0-9./\\ :-]+)/\1/g"
スクリプトに適応:
-re "s/WARNING: ([a-zA-Z0-9./\\ :-]+)/${warn}WARNING: \1${c_end}/g" \
エラー:シェルは、入力した場合と同じ情報を出力します$ sed
。変!?
バリアント 2:
$ sed -e "s/\([a-zA-Z0-9./\\ :-]\+\)/\1/g"
スクリプトに適応:
-e "s/WARNING: \([a-zA-Z0-9./\\ :-]\+\)/${warn}WARNING: \1${c_end}/g" \
エラー:
sed: -e 式 #7、文字 59: `s' コマンドの RHS の参照 \1 が無効です