Grep 复杂文件中的筛选器指定模式

Grep 复杂文件中的筛选器指定模式,grep,uniq,Grep,Uniq,我有这个日志文件,我试图避免打印包含Patrn“APLHA”的文本 我尝试通过这种方式,但没有成功。它打印文本的其余部分,除了“ALPHA” cat日志文件| grep-v“ALPHA” 结果: 我所期望的是,包含“ALPHA”的整个日志没有打印出来,如下所示: +++ skdfhahjsahsdjk > * KJENRFKES DFJKLSDFJEDFJDJFKLJDKFJKSDLFJL SDFSDGDRGRTG WEFETTFYRT #168113++- +++

我有这个日志文件,我试图避免打印包含Patrn“APLHA”的文本

我尝试通过这种方式,但没有成功。它打印文本的其余部分,除了“ALPHA”

cat日志文件| grep-v“ALPHA”
结果:

我所期望的是,包含“ALPHA”的整个日志没有打印出来,如下所示:

 +++ skdfhahjsahsdjk >
* KJENRFKES DFJKLSDFJEDFJDJFKLJDKFJKSDLFJL
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

   +++ skdfhahjsahsdjk >
CL mesukww juwaehdiearfa
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

   +++ skdfhahjsahsdjk >
*C KJENRFKESDFJ ksludhieokdaewmdp
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

 +++ skdfhahjsahsdjk >
** BETA EDFJDJFKLJDKFJKSDLFJL
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-
你能就这个案子的其他解决方案提出建议吗

关于Dom,请尝试一下:

awk 'BEGIN{RS=ORS="\n\n"}!/ALPHA/' file

使用
perl
的slurp模式的替代解决方案(
-00
启用)。这将告诉<代码> perl >考虑段落是一条记录而不是行。稍后清除,仅当
ALPHA
不存在时打印

perl -00 -ne  'print if  !/ALPHA/' inputfile
   +++ skdfhahjsahsdjk >
* KJENRFKES DFJKLSDFJEDFJDJFKLJDKFJKSDLFJL
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

   +++ skdfhahjsahsdjk >
CL mesukww juwaehdiearfa
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

   +++ skdfhahjsahsdjk >
*C KJENRFKESDFJ ksludhieokdaewmdp
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

 +++ skdfhahjsahsdjk >
** BETA EDFJDJFKLJDKFJKSDLFJL
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

查看您的问题历史记录,我认为您应该阅读以下内容:。当我运行您的命令
cat logfile | grep-v“ALPHA”
时,它实际上也可以写入
grep-v“ALPHA”输入文件
,对我来说运行良好。请检查一下您的输入文件中是否有控制字符M?通过执行cat-v输入文件,然后让我们知道?我尝试了你的建议,“grep-v”ALPHA“输入文件”和输出与以前相同。关于cat-v命令,我没有发现任何控件M字符。@Dominik,如果这里提供的解决方案对您有所帮助,那么您也应该通过向上投票来感谢答案。您只能接受一个答案,但可以欣赏所有答案。@Dominik at所以您接受解决问题的答案。否则,没人会再帮你了。检查您的问题历史记录,并接受答案。我不知道如何接受答案,这就是我没有单击“接受答案”的原因。现在我找到了,谢谢你:)谢谢你的解决方案!是的,你的建议似乎也很好,我很感激:)
awk 'BEGIN{RS=ORS="\n\n"}!/ALPHA/' file
perl -00 -ne  'print if  !/ALPHA/' inputfile
   +++ skdfhahjsahsdjk >
* KJENRFKES DFJKLSDFJEDFJDJFKLJDKFJKSDLFJL
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

   +++ skdfhahjsahsdjk >
CL mesukww juwaehdiearfa
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

   +++ skdfhahjsahsdjk >
*C KJENRFKESDFJ ksludhieokdaewmdp
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-

 +++ skdfhahjsahsdjk >
** BETA EDFJDJFKLJDKFJKSDLFJL
   SDFSDGDRGRTG
   WEFETTFYRT #168113++-