我正在尝试 grep 查找具有两个可识别字符的特定字符串..示例是
grep -rhIo '[a-zA-z]@[a-zA-z]\.com]
输入文件示例:
name:phone:[email protected]
理论上应该输出:
[email protected]
但它只会输出
e@e
所以我需要如何表明 az 可以是无限长度而不仅仅是一个字符
答案1
我什至不会grep
在您发布的示例中使用,它很简单,可以通过以下方式处理cut
:
$ echo name:phone:[email protected] | rev | cut -d: -f1 | rev
[email protected]
编辑:
但如果你想要grep
它会是这样的:
$ echo name:phone:[email protected] | grep -oE '[a-zA-Z]+@[a-zA-Z]+\.com'
[email protected]
请注意,它+
代表one or more instances
正则表达式中的前一个字符,并且-E
必须与 grep 一起使用才能正常工作:
-E, --extended-regexp
Interpret PATTERN as an extended regular expression (ERE, see below).
(-E is specified by POSIX.)