文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
+
匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
x{m},x{m,},x{m,n}
作用同x{m},x{m,},x{m,n}
linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展选项:
-E, --extended-regexp
Interpret PATTERN as an extended regular expression.
-v, --invert-match
Invert the sense of matching, to select non-matching lines.
grep -E 可以理解成 egrep
而egrep是grep的扩展,支持更多的re元字符
而egrep和grep -v参的功能是一样的,只是前者支持更多的re元字符
一些grep有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索.默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行.
grep -e Tech -e Sales employee.txt
grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename
grep -E 'Dev.*Tech' employee.txt
grep -E 'Manager.*Sales|Sales.*Manager' employee.txt