Regex 使用0搜索所有字符串

Regex 使用0搜索所有字符串,regex,bash,grep,sh,Regex,Bash,Grep,Sh,我有输出 Gi2/21 0 0 0 0 833603 0 Gi5/1 0 0 0 53 0 5538 Gi6/1 0 0 2 2 0 0 Gi6/2 0

我有输出

Gi2/21              0          0          0          0    833603        0 
Gi5/1               0          0          0         53         0     5538
Gi6/1               0          0          2          2         0        0 
Gi6/2               0          0          0          0         0        0


什么正则表达式可以过滤0或0 0 0 0的所有字符串?

如果要查找包含多个连续零的行,可以在Perl正则表达式选项
-p
下使用
grep
和以下正则表达式

grep -P '0\s+0\s+0\s+0' Input.txt
要反转匹配并过滤掉这种性质的行,只需使用
grep-v

grep -P -v '0\s+0\s+0\s+0' Input.txt

如果没有Perl regex标志,则需要转义
+

grep '0\s\+0\s\+0\s\+0' Input.txt

根据输入示例,您可以使用
awk

如果需要非零线:

awk '{sum=0;for(i=2;i<=NF;i++){sum+=$i} if (sum){ print $0}}' file
awk '{sum=0;for(i=2;i<=NF;i++){sum+=$i} if (sum==0){ print $0}}' file
如果只需要非零字段,请对该匹配项求反:

sed -n -E '/^[[:alnum:]\/]+[0[:blank:]]+$/!p' file
这也适用于
grep

grep -E '^[[:alnum:]\/]+[0[:blank:]]+$' file
或:


grep'0\s\+0\s\+0\s\+0'
运行良好

过滤入或过滤出?尝试`grep-v[1-9]output.txt`我想运行一些cat日志文件| grep-v'..请提供所需输出的示例、您使用的系统、您尝试过的内容以及由此产生的任何错误消息。@uatusa,您运行的是什么版本的grep,您运行的是什么平台?@uatusa,我还添加了一个可能会有所帮助的标志。查看编辑后的答案。实际上,
+
是一种ExtGlob模式,您只需使用
-E
,无需PCRE
sed -n -E '/^[[:alnum:]\/]+[0[:blank:]]+$/!p' file
grep -E '^[[:alnum:]\/]+[0[:blank:]]+$' file
grep -E -v '^[[:alnum:]\/]+[0[:blank:]]+$' file