---
各エントリが次のように 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
-----------------