Unix grep表示发生2或3次的模式
我正在寻找正则表达式,它在Unix grep表示发生2或3次的模式,unix,grep,Unix,Grep,我正在寻找正则表达式,它在2345679696969中找到类似696969的出现 我不想搜索696969,但要简化它,比如69出现3次 大概是这样的: grep '[0-9]\{7\}69\{3\}' 但它会搜索9的出现次数三次 有人能帮忙吗?带括号的小组69: grep -E '(69){3}' 试验 总而言之: $ echo "2345679696969" | grep -E '[0-9]{7}(69){3}' 2345679696969 或者使用基本的grep(感谢Avinash)
2345679696969
中找到类似696969
的出现
我不想搜索696969
,但要简化它,比如69
出现3次
大概是这样的:
grep '[0-9]\{7\}69\{3\}'
但它会搜索9
的出现次数三次
有人能帮忙吗?带括号的小组
69
:
grep -E '(69){3}'
试验
总而言之:
$ echo "2345679696969" | grep -E '[0-9]{7}(69){3}'
2345679696969
或者使用基本的grep
(感谢Avinash):
我以前尝试过这个,但它给出了以下错误:grep:invalize选项--E用法:grep-hblcnsviw模式文件。我搜索并知道它应该使用/usr/xpg4/bin/grep。我必须导出它还是什么?@vishalchoudhary查看更新的答案。您可以使用
grep
而不使用-E
选项,方法是对每个符号进行转义:grep'[0-9]\{7\}(69\{3\}'
。我尝试过,但没有给出任何输出:grep'[0-9]\{7\}(69)\{3\}文件名。但是当我像这样运行它时,grep'[0-9]\{7\}6969'文件名。我得到了输出。@vishalchoudhary奇怪的是,grep'[0-9]\{7\}6969'文件名
有效,而不是我建议的文件名。这对你有用吗grep'[0-9]\{7\}\(69\)'
。是的,这可以很好地工作并搜索文件中69的单个匹配项。
$ echo "2345679696969" | grep -E '[0-9]{7}(69){3}'
2345679696969
grep '[0-9]\{7\}\(69\)\{3\}'