参考视频资料:武晟然
常用正则表达式
正则表达式使用单个字符描述、匹配一些符合某个要求的字符串。在Linux中,grep,sed,awk等文本处理工具都支持正则匹配。
(1) 常规匹配
用不包含特殊字符的正则表达式匹配
eg: cat/etc/passwd | grep atguigu
匹配包含atguigu的行
(2) ^
匹配一行的开头
eg: cat /etc/passwd | grep ^a
匹配所有以a开头的行
(3) $
匹配一行的结尾
eg: cat /etc/passwd | grep t$
匹配出所有以 t 结尾的行
特殊:^$ 匹配空行 (-n显示行号)
(4) .
匹配一个任意的字符
eg: cat /etc/passwd | grep r…t
匹配包含如 rabt,root 等的所有行
(5) *
和上一个字符连用表示这一个字符出现任意次(0次、1次或多次) 、 (不单独使用)
eg: cat /etc/passwd | grep ro*t
匹配 rt, rot, root, rooot, roooot 等所有行
特殊:.* 匹配任意字符串(包含空字符串)
(6) [ ]
匹配某个范围内的一个字符
eg: [6,8]------匹配 6 或者 8 (逗号可加可不加)
eg: [0-9] ------匹配一个 0-9 的数字
eg: [0-9]* ------匹配任意长度的数字字符串
eg: [a-z] ------匹配一个 a-z 之间的字符
eg: [a-z]* ------匹配任意长度的字母字符串
eg: [a-c, e-f] ------匹配 a-c 或者 e-f 之间的一个字符
(7) \
匹配某一特殊字符本身 (需用单引号将表达式引起来)
eg: cat /etc/passwd | grep ‘a$b’
匹配所有包含 a$b 的行