好比我想要獲取eth0這塊網卡的ip 有以下兩個命令:正則表達式
ifconfig eth0 | grep inet | grep -o -E \([0-9]+\.\){3}[0-9]+ | head -n 1 ifconfig eth0 | grep inet | grep -o -P \(\\d+.\){3}\\d+ | head -n 1
其原理就是採用的grep正則表達式獲取ip.net
注意這個地方有知識點是關於grep 正則 爲啥對\d 不起做用?code
知識點以下:對象
1、正則表達式分類:blog
一、基本的正則表達式(Basic Regular Expression 又叫 Basic RegEx 簡稱 BREs)ip
二、擴展的正則表達式(Extended Regular Expression 又叫 Extended RegEx 簡稱 EREs)get
三、Perl 的正則表達式(Perl Regular Expression 又叫 Perl RegEx 簡稱 PREs)博客
2、grep , egrep 正則表達式特色:it
1)grep 支持:BREs、EREs、PREs 正則表達式io
grep 指令後不跟任何參數,則表示要使用 」BREs「
grep 指令後跟 」-E" 參數,則表示要使用 「EREs「
grep 指令後跟 「-P" 參數,則表示要使用 「PREs"
2)egrep 支持:EREs、PREs 正則表達式
egrep 指令後不跟任何參數,則表示要使用 「EREs」
egrep 指令後跟 「-P" 參數,則表示要使用 「PREs"
3)grep 與 egrep 正則匹配文件,處理文件方法
a. grep 與 egrep 的處理對象:文本文件 b. grep 與 egrep 的處理過程:查找文本文件中是否含要查找的 「關鍵字」(關鍵字能夠是正則表達式) ,若是含有要查找的 」關健字「,那麼默認返回該文本文件中包含該」關健字「的該行的內容,並在標準輸出中顯示出來,除非使用了「>" 重定向符號, c. grep 與 egrep 在處理文本文件時,是按行處理的
詳細原文,請見此大神的博客: