正則表達式
1.正則表達式的分類(grep)
1.普通正則表達式
2.拓展正則表達式
2.普通正則表達式
^ : 以某字符開頭
$ : 以某字符結尾
. : 匹配除換行符之外的任意單個字符
* : 匹配前導字符的任意個數
[]: 某組字符串的任意一個字符
[^]: 取反
[a-z] : 匹配小寫字母
[A-Z] : 匹配大寫字母
[a-zA-Z] : 匹配字母
[0-9] : 匹配數字
\ : 取消轉義
(): 分組
\n : 代表第n個分組
# 拓展正則
{} :匹配的次數
{n} : 匹配n次
{n,} :至少匹配n次
{n,m} :匹配 n 到 m 次
{,m} :最多匹配m次
+ : 匹配至少有一個前導字符
? : 匹配一個或零個前導字符
| : 或
正則表達式案例
案例:
案例1:在/etc/passwd文件中,匹配以ftp開頭的行
grep '^ftp' /etc/passwd
案例2:在/etc/passwd文件中,匹配以bash結尾的行
grep 'bash$' /etc/passwd
案例3:匹配本機中有哪些ip
ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
案例4:要求將/etc/fstab中的去掉包含 # 開頭的行,且要求 # 后至少有一個空格
grep -vE '^#\ +' /etc/fstab
案例5:找出文件中至少有一個空格的行
grep -E '\ +' xxx
案例6:將 nginx.conf 文件中以#開頭的行和空行,全部刪除
grep -vE '^\ *#|^$' /etc/nginx/nginx.conf