基本正则表达式
grep ‘正则表达式’ file
^string :以string开头的行
^: 号在中括号外面表示以什么开头,号在中括号里面表示除什么以外
stringKaTeX parse error: Expected group after '^' at position 14: :以string结尾的行 ^̲:空行
<string:表示以string开头的单词
>string:表示以string结尾的单词
. :可以代表任意一个字符
[]:里面也代表任意一个字符,只是说明了匹配的·字符范围[abc],取a或b或c,只匹配字符行
[^a];匹配a以外的字符 的行
[A-Z]:大写字母
[1-9]:数字
[a-z]:小写字母
[A-Z a-z]:全部字母
[a]:除了a以外的字母
\:反斜杠,转义字符,去除\后面字符的特殊含义,变成字符串
1.grep -w root passwd 匹配含有字符串root的行
2.grep -w ^root passwd 匹配以字符串root开头的行
3.grep -w ‘bash$’ passwd 匹配以字符串bash结尾的行(有bash即可以登录的用户)
4.grep ‘^#’ passwd 匹配注释行
5.grep -v ‘^#’ passwd 去掉注释行
6.grep -v ‘^#’ /etc/profile | grep ‘^KaTeX parse error: Expected group after '^' at position 17: … 匹配去掉注释行之后的空行(”^̲”)
7.grep -I ‘<root’ /tmp 匹配以root开头的行
8.grep -I ‘root>’ /tmp 匹配以root结尾的单词的行
grep ‘<root>\’ /tmp 等价于 grep -w ‘ root ’ /tmp
9.grep -I ‘ro’ passwd 匹配含有ro的行
10.grep -I ‘ro.’ passwd 匹配含有(ro.)任意一个字符的行,点代表任意一个字符
11.grep -I ‘1’ passwd匹配以a或b或c开头的行
12.grep ‘2’ passwd匹配以小写字母开头的行
- grep ‘[^a]’ passwd ,^在中括号里面代表匹配a开头以外的所有行
14.grep ‘3’ passwd匹配所有以字母开头的行
15.grep ‘[abc]’ passwd匹配不以a或b或c开头的行
-
grep ‘^[’ passwd 匹配以[开头的行,\转义字符,使[变得没有意义即字符串
-
grep ‘ro*’ passwd 匹配ro后面出现o 0-多次
grep ‘r.*’ passwd 含有r的都匹配
8.扩展正则表达式 egrep=grep -E ,同时支持基本正则表达式
对的补充扩展*
- :代表+前面的字符出现1-多次 grep ‘ro+’ passwd
?:代表?前面的字符出现0-1次 grep ‘ro?’ passwd
{j} : 代表前面的字符出现0-1次,j代表具体数字次数 grep ‘ro{2}’ passwd
grep ‘ro{1,2}’ passwd
grep ‘ro{2,7}’ passwd
grep ‘ro{,9}’ passwd
grep ‘ro{7,}’ passwd
grep ‘root | bash’ passwd 匹配root或者bash的
tail -f /var/log/messages | egrep -I ‘err | warn den’
grep ‘(ro){2}’ passwd ro整体出现的次数
例如:ifconfig | egrep -i ‘([0-9]{3}.)’
ifconfig | egrep -i ‘([0-9]{1,3}.){3}[0-9]{1,3}’
ifconfig | egrep -io ‘([0-9]{1,3}.){3}[0-9]{1,3}’
egrep -i -o ‘<[a-z]{1,}>’ passwd
egrep -i -o ‘<[[:lower:]]{1,}>’ passwd
其他常用通配符glob(7)
[:alpha:]:匹配字母(不区分大小写)
[:lower:]:匹配小写字母
[:upper:]:匹配大写字母
[:digit:]:匹配数字
[:space:]:匹配空格
[:alnum:]:匹配任意字母或数字
[:punct:]:除空格和字母、数字以外的任何可打印字符