
2GB Mavenビルドログファイルから例外とそのモジュールをキャプチャしてみてください。ログファイル形式:
[main] [INFO] -------------< org.maven.plugins.junt:parent >-------------
[main] [INFO] Building junt-parent 1.0.0-SNAPSHOT
...........
...........
...........
...........
Exception units:
<failed units>
<failed units>
次のオプションが提案されていますが、どちらも一致の前後に追加の行を印刷します。例外セルを記録したモジュールを見つけて一致させる方法がわかりません。これら2つの一致の間の行は必要なく、例外デバイスとそのモジュールに障害が発生したモジュールのみが必要です。
sed -n '/Exception units/,/^$/p' maven_build.log
またsed -n '/Building/,/Exception units/!p'
編集:期待される出力:
Building junt-parent 1.0.0-SNAPSHOT
Exception units:
<failed units>
<failed units>
答え1
コメントを見ると、実際に次のようなファイルがあることがわかります。
[main] [INFO] Building bar 1.0.0-SNAPSHOT
... Building ........
[main] [INFO] -------------< org.maven.plugins.junt:parent >-------------
[main] [INFO] Building junt-parent 1.0.0-SNAPSHOT
... Building ........
Exception units:
<failed units>
<failed units>
[main] [INFO] Building foo 1.0.0-SNAPSHOT
... Building ........
Exception units:
そして、空白行まで、最後の行の前に行を印刷したい行がある場合にのみ、[main] [INFO] Building
メッセージが属するモジュールがわかります。他の[main] [INFO] Building
すべては例外なく印刷する必要はありませんか?
この場合、必要に応じて再読み込みできるように、[main] [INFO] Building
各行を予約済みスペースに保存できます。h
sed -ne '/\[main] \[INFO] Building/h;/Exception units:/{x;p;x;}' -e '//,/^$/p'
Exception units:
行が見つかったら、空白を変更し、保存されたx
行Building
を印刷p
してx
空白をもう一度変更します。最後に、すべての行が空白行までp
印刷されます(空白パターンは//
最後のパターンと一致するため、繰り返す必要はありません)。出力は次のとおりです
[main] [INFO] Building junt-parent 1.0.0-SNAPSHOT
Exception units:
<failed units>
<failed units>
これが望まない場合は、実際のケースを聞いてください。