grep正規表現に一致する各行に2行をフィルタリングする方法は?
私の最小限のテストは次のとおりです。
SomeTestAAAA
EndTest
SomeTestABCD
EndTest
SomeTestDEFG
EndTest
SomeTestAABC
EndTest
SomeTestACDF
EndTest
たとえば、明らかに試してみましたが、うまくいきませgrep -vA 1 SomeTestAA
んでした。
希望の出力は次のとおりです。
SomeTestABCD
EndTest
SomeTestDEFG
EndTest
SomeTestACDF
EndTest
ベストアンサー1
(PCRE)grep
と組み合わせて使用できます。-P
grep -P -A 1 'SomeTest(?!AA)' file.txt
(?!AA)
幅がゼロの否定予測モードで、AA
その後はないことを保証しますSomeTest
。
テスト:
$ grep -P -A 1 'SomeTest(?!AA)' file.txt
SomeTestABCD
EndTest
SomeTestDEFG
EndTest
SomeTestACDF
EndTest