- 1. egrep password\\.+wrong ./error.log
- 在当前目录error.log文件中 找出 匹配password\\.+wrong 的行内容
- 2. egrep password\\.+wrong ./error.log | wc -l
- 在当前目录error.log文件中 找出 匹配password\\.+wrong 的行 个数
- 3. egrep password\\.+wrong ./*
- 在当前目录所有文件中 找出匹配password\\.+wrong 的行内容
- 4. egrep password\\.+wrong ./*.log* | wc -l
- 在当前目录匹配*.log* 文件中 找出匹配password\\.+wrong 的行个数
- 5. egrep \\([0-9]{2}\\:\\){2}[0-4]{2}\\.+password\\.+wrong ./error.log
- 在 error.log文件中 找 nn:nn:nn....passwrod...wrong模式的文本.
- 6. 在shell里面 \\表示 普通转为元字符, \\\\\\ 表示天生元字符转为普通字符.比如小括号,中括号
- 正则表达式
- grep正则表达式元字符集(基本用法)
- 匹配次数(贪婪模式):
- . 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
- * 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
- .* 一起用来表示任意字符。
- \\? 或者 ? 匹配其前面的字符1次或0次。
- x\\{m\\} 连续重复字符x,m次,如:'o\\{5\\}'匹配包含连续5个o的行。
- x\\{m,\\} 连续重复字符x,至少m次,如:'o\\{5,\\}'匹配至少连续有5个o的行。
- x\\{m,n\\} 连续重复字符x,至少m次,不多于n次,如:'o\\{5,10\\}'匹配连续5--10个o的行。
- 元字符:
- [] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
- [^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
- 位置锚定:
- ^: 锚定行首,此字符后面的任意内容必须出现在行首
- $: 锚定行尾,此字符前面的任意内容必须出现在行尾
- \\<或\\b 锚定单词的开始,如:'\\<grep'匹配包含以grep开头的单词的行。
- \\>或\\b 锚定单词的结束,如'grep\\>'匹配包含以grep结尾的单词的行。
- 分组:
- \\(\\)
- \\(ab\\)*
- 后向引用
- \\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
- \\2:
- \\3:
- \\w 匹配一个文字和数字字符,也就是[A-Za-z0-9],如:'G\\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
- \\W w的反置形式,匹配一个非单词字符,如点号句号等。\\W*则可匹配多个。
- \\b 单词锁定符,如: '\\bgrep\\b'只匹配grep,即只能是grep这个单词,两边均为空格。
- 多个关键字查找
- 1.1 使用-e
- grep -e 'stdio\\.h' -e 'stdlib\\.h' /usr/include/*.h
- 1.2 使用-f file
- 将关键字以行方式保存在一个文件中
- 1.3 使用元字符 \\|
- grep 'stdio\\.h\\|stdlib.h' /usr/include/*.h
- POSIX特殊字符类:可以通过 man 7 glob查看。。。
- [:alpha:] 文字字符 [A-Za-z]
- [:digit:] 数字字符 [0-9]
- [:graph:] 非空字符(非空格、控制字符)
- [:lower:] 小写字符 [a-z]
- [:upper:] 大写字符 [A-Z]
- [:alnum:] [0-9a-zA-Z]
- [:cntrl:] 控制字符
- [:print:] 非空字符(包括空格)
- [:punct:] 标点符号
- [:space:] 所有空白字符(新行,空格,制表符),制表符还可以用\\t表示
- [:xdigit:] 十六进制数字和字母(0-9,a-f,A-F)
- 我们在用时要这样用:[[:alpha:]],如果取反就是[^[:digit:]]
- 正则表达式和通配符的区别
- 通配符是系统level的 而正则表达式需要相关工具的支持: egrep, awk, vi, perl。
- 在文本过滤工具里,都是用正则表达式,比如像awk,sed等,是针对文件的内容的。
- 通配符多用在文件名上,比如查找find,ls,cp,等等。
- #该片段来自于http://www.codesnippet.cn/detail/301220138325.html
来源: http://www.codesnippet.cn/detail/301220138325.html