regexp查找除特定数字之外没有数字模式的所有行
我在regexp和grep命令方面有一些经验,但找不到一种方法来执行以下操作 让immagine具有以下文本文件:regexp查找除特定数字之外没有数字模式的所有行,regex,grep,Regex,Grep,我在regexp和grep命令方面有一些经验,但找不到一种方法来执行以下操作 让immagine具有以下文本文件: abc 123 cdf aze ert vfg 12 gj zrr 345 rty top flg 567 aze 345 odi 我需要获取包含“345”的所有行,以及没有与patern[0-9]{3}匹配的其他数字的行,以便它返回: aze ert vfg 12 gj zrr 345 rty aze 345 odi 问候, 你可以试试下面的方法 grep -P '\b345
abc 123 cdf
aze ert
vfg 12 gj
zrr 345 rty
top flg 567
aze 345 odi
我需要获取包含“345”的所有行,以及没有与patern[0-9]{3}匹配的其他数字的行,以便它返回:
aze ert
vfg 12 gj
zrr 345 rty
aze 345 odi
问候,你可以试试下面的方法
grep -P '\b345\b|^(?!.*\b\d{3}\b)' file
\b345\b
首先匹配包含数字345的行
(?!.\b\d{3}\b)
负先行断言我们要匹配的行不包含三位数。如果是,那么它将匹配该特定行的开始-P
单独打印所有匹配的行。如果使用
-P
(perl)选项,则需要一个反向前瞻,grep支持该选项:
看
用grep-p
试试这个。参见演示
太好了,谢谢大家!!以前从未听说过消极前瞻 因此,为了进一步解释并给出更简单的regexp: grep-p'345 | ^(?.*[0-9]{3})文件 -p是使用perl风格的regexp(支持前瞻性) ?! 是否定的前瞻表达式
谢谢。@avin碰巧是的,但是我在看到你的帖子之前发了帖子(我的浏览器崩溃了好几次)@avin如果你一定要知道我在iPhone上,而且速度很慢going@xtrder99
grep -P "\b345\b|^(?!.*\b[0-9]{3}\b)"
^.*?345.*$|^(?!(?:.*\d){3,}).*$