linux正则表达式
linux正则表达式
一、正则表达式的分类(grep)
1.普通正则表达式
2.扩展正则表达式
二、普通正则表达式
^ :以某字符开头
$ :以某字符结尾
. :匹配除换行符之外的任意单个字符
* :匹配前导字符的任意字数
【】:某组字符串的任意一个字符
【^】:取反
【a-z】:匹配小写字母
【A-Z】:匹配大写字母
【a-zA-Z】:匹配字母
【0-9】:匹配数字
\ :取消转义
() :分组
\n :代表第n个分组
三、扩展正则
{} :匹配的次数
{n} :匹配n次
{n,} :至少匹配n次
{n,m} :匹配n到m次
+ :匹配至少有一个前导字符
? :匹配一个或另个前导字符
| :或
案例:
1 案例1:在/etc/passwd文件中,匹配以ftp开头的行 2 grep '^ftp' /etc/passwd
1 案例2:在/etc/passwd文件中,匹配以bash结尾的行 2 grep 'bash$' /etc/passwd
1 案例3:匹配本机中有哪些ip 2 ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
1 案例4:要求将/etc/fstab中的去掉包含 # 开头的行,且要求 # 后至少有一个空格 2 grep -vE '^#\ +' /etc/fstab
1 案例5:找出文件中至少有一个空格的行 2 grep -E '\ +' xxx
1 案例6:将 nginx.conf 文件中以#开头的行和空行,全部删除 2 grep -vE '^\ *#|^$' /etc/nginx/nginx.conf