通配符與正規

Linux I
第1章 通配符VS正則 1
1.1 找出oldboy.Txt中以mn開頭的 1
1.2 找出oldboy.txt中以m或n開頭並且以m或n結尾的行 1
1.3 排除大小寫 排除數字 2
第2章 擴展正則 2

課前回顧:
特殊符號:引號 重定向 其他符號 位置 判斷
第1章 通配符VS正則
通配符:找出文件名 大部分命令可以使用
正則:精確的過濾 給三劍客使用
正則表達式(regular Expression RE)
基礎正則 (BRE Rasic Reg ular Expression)
^ 以..開頭
$ 以。。。結尾
^$空行
.任意一個字符
前一個字符連續出現0個或0個以上
.
所有
[] 相當於是一個符號(每次匹配1個字符)找出包含a或b 或c 例:grep ‘[^abc]’ oldboy.txt
1.1 找出oldboy.Txt中以mn開頭的

1.2 找出oldboy.txt中以m或n開頭並且以m或n結尾的行

[^]除了a或b或c其餘都有

1.3 排除大小寫 排除數字
a-Z 是專門給grep用的

第2章 擴展正則

  • 前一個字符連續出現1次或1次以上 利用egrep匹配
    Egrep 過濾掉的不顯示

取出連續出現的小寫字母 先取出小寫字母 再加+號 會依次輸出

| 表示或者 應用時必須加引號

() 表示整體

()反向引用/後向引用
思路:把你想要的內容保護起來
Sed 在‘s###g’後兩個井號之間使用 \數字 引用
前面保護後面使用

{} 0{n ,m} 前一個字符至少出現n次,最多出現m次

? 前一個符號連續出現0次或1次 (前一個字符有或沒有)

  • 一般與[]匹配 某一行的某一部分
    1.定位 取出某一行
    2.sed/awk 取出想要的內容
    取出網卡的IP地址
    IP a s eth0
    Ip address show eth0
    方法1
    [root@oldboyedu50-lnb /oldboy]# ip a s eth0 |awk 'NR==3'|awk -F"[ /]+" '{print $3}'
    10.0.0.200

取出ifconfig eth0 ip地址和子網掩碼
方法1
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"[ :]+" '{print $4,$NF}'
10.0.0.200 255.255.255.0

方法2
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"addr:|Bcast:" '{print $2}'
10.0.0.200

坑漏補:
正則表達式-坑1-grep '0' 會把文件內容都顯示出來
#0
0次 沒有 grep '' 會把文件內容都顯示出來

0次以上 0 00000000000

正則表達式-坑2- [oldboy] 會把與oldboy 相關的挨個顯示出來 加-o會單個顯示內容

正則表達式-坑3- [^#^$] [^$] [^#$]
[]中 $ . 沒有特殊含義

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章