2つのgrepを1つにマージ

2つのgrepを1つにマージ

他のコマンドの出力からIDを抽出する必要があります。現在私の抽出コマンドは次のとおりです。

someID=$(command | grep -oP '(?:^Successfully\sbuilt\s)([\da-z]{12}$)' | grep -oP '([a-z\d]{12})')

コマンド出力の例:

 ---> Using cache
 ---> 9b4624927fa6
Successfully built 9b4624927fa6

予想される結果:

9b4624927fa6

行から抽出されたID

Successfully built 9b4624927fa6

この2つのgrepステートメントを1つにまとめるにはどうすればよいですか?

ベストアンサー1

私の最初の作品を少し修正しましたgrep

$ grep -oP '^Successfully\sbuilt\s\K[\da-z]{12}$' example-output
9b4624927fa6

\KPCREからゲームをリセットして始めましょう:

エスケープシーケンスの\Kため、以前に一致した文字は最終一致シーケンスに含まれません。

幅0の肯定的な振り返りアサーションに似ています (?<=Successfully...

おすすめ記事