正则表达式:grep,egrep
正则表达式是处理字符串的一种表示方式
要注意语系对正则表达式的影响
其中的字符与通配符不同
grep
#grep [-A] [-B] [--color=auto] '搜索字符串' filename
-A:后面加数字,为after之意,表示除此行之外,后面的n行业列出来
-B:...前面的n行业列出来
--color=auto:可将正确的那个选取数据列出颜色
#dmesg |grep -n -A3 -B2 --color=auto 'eth'
也可以在 ~/.bashrc 内加上 alias grep='grep --color=auto'
行首与行尾字符 ^ $
^ 表示行首(在[]外表示行首,在[]内表示反向选择)
$ 表示行尾
#grep -n '^[a-z]' filename 将行首为小写字母的行列出来
#grep -n '^the' filename 将行首为the的行列出来
#grep -n '\.$' filename 行尾是小数点的行列出来
#grep -n '^$' filename 将空行列出来
#grep -n 'g.*g' file
#grep -n 'o\{2\}' file 列出有两个o的那一行
#grep -n 'o\{2,5\}' file 有2~5个o的那一行
#grep -n 'go\{2,\}g' g...g之间有两个以上o的行列出来
基本正则表达式元字符集
* 0个或多个在*字符之前的那个普通字符
. 匹配任意字符
^ 匹配行首,或者后面字符的非
$ 匹配队尾
[] 匹配字符集合
\ 转义符,屏蔽一个元字符的特殊意义
\<\> 精确匹配符号
\{n\} 匹配前面字符出现 n 次
\{n,\} 匹配前面字符至少 n 次
\{n,m\} 匹配前面字符出现 n~m 次
扩展正则表达式元字符集合
? 匹配0个或者1个在其之前的那个普通字符
+ 匹配1个或多个在其之前的那个普通字符
() 表示一个字符集和或者用在expr中
| 表示“或”,匹配一组可选的字符
()+ 多个重复组的判别
通配符(用在bash命令行)
通配符与正则表达式元字符完全不一样,他们有自己的意思。
? 表示一个任意字符
* 表示任意位任意字符
[]
{}
^ 代表取反
扩展正则表达式egrep
#egrep -n 'do(es)?' filename
可输出:does doeses doeeee dosss doe 等。
阅读(2619) | 评论(0) | 转发(1) |