資格のある区切り文字を抽出する方法は? [コピー]

資格のある区切り文字を抽出する方法は? [コピー]

---各エントリが次のように series で区切られたログファイルがあります。

-----------------
Name=Operation1
Time: 100
Status=Success
-----------------
Name=Operation1
Time: 500
Status=Failure
-----------------
Name=Operation2
Time: 200
Status=Success
-----------------
Name=Operation2
Time: 800
Status=Failure
-----------------

Name=Operation1特定の条件に一致するすべての項目(たとえば、あるすべての項目、またはあるすべての項目Status=Failure)を抽出したいと思います。私は次のようにagrepを使うことができると思いました。agrep -d "---*" -e "Name=Operation1" mylogfile > myfilteredlogfileところでファイルを見てみると、予想通りフィルタリングされないようです。フィルタリングにはどのような問題があり、目的のアイテムをどのように抽出できますか?

ベストアンサー1

awkマルチバイトレコード区切り文字を受け入れる場合は、次のことを試してください。

awk -vRS="-----------------" -vORS="-----------------" '/Failure/' file

Name=Operation1
Time: 500
Status=Failure
-----------------
Name=Operation2
Time: 800
Status=Failure
-----------------

おすすめ記事