他のコマンドの出力から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
\K
PCREからゲームをリセットして始めましょう:
エスケープシーケンスの
\K
ため、以前に一致した文字は最終一致シーケンスに含まれません。
幅0の肯定的な振り返りアサーションに似ています (?<=Successfully...
。