一.匹配字元
. 符合任一字元
[ ] 符合指定範圍內的任一字元
[^] 符合飛指定範圍內的任意字元
:alpha: 字元] 字元[low; :] 小寫字母字元
[:upper:] 大寫字母字元
[:digit:] 數字
[:alnum:] 字母數字字元
[:space:] 空白回車符、換行符、垂直製表符和換頁符
[:punct:] 標點字元
[:cntrl:] 控製字元(禁止列印)
[:print:] 可列印字元
使用時一般使用兩個中括號,具體會在下面的例子中使用。
二.匹配次數
* 任意配對前面的字元
.* 符合任意長度的任意字元(注意貪婪模式,例如 grep “r.*t” /etc/c/D. } 指定前面的字元至少出現m次,至多出現N次。
x{m,} 指定前面的字元至少出現m次
x{0,n} 指定前面的字元至多出現N次
x{m} 精確匹配m次
x{m} 精確匹配m次x{m} 精確匹配m次
x{m} 實際匹配m次?或1次三.錨定符1.^ 錨定行首 grep "^r..t" /etc/passwd2.$ 錨定行尾3.^$ 錨定空白行 grep "^$" /etc/passwd
4.
錨定詞首 grep "r..t>" /etc/passwd
範例(容易混淆):
至少包含一個空白字元 grep "[[space::]{1,}
至少包含一個非空白字元 grep "[^[:space:]]{1,}" /etc/passwd沒有一個空白字元etc/passwd6.()對字元分組 grep "(l..e).*1r"範例:grep --color "l([13]):1:.*:1" / etc/inittab四.選項-v 對結果取反-i 忽略字母大小寫-o 正規表示式-A n 顯示配對到的行下面n行-B n 顯示配對到的行上面n行-C n 顯示配對到的行上方各顯示n行-C n 顯示配對到的行上各顯示n行1.找出系統中user1使用者的相關資訊。 (提前建好user11,myuser1)(易錯)
grep "user1" /etc/passwd 所有包含user1的行
grep "
11.取出目前網路介面的相關IP位址(不包含127.0.0.1)
ifconfig |grep "inet addr" |grep -v "127.0.0.1"| cut -d: -f2|cut -d" " - f1
ifconfig |grep -A 1 "eth" |grep -o "addr:[0-9.]{1,}"|cut -d: -f2
五.擴充正規表示式
與正規表示式不同之處:
()替換為()
{}替換為{}
+ 次數匹配,匹配其前的額字符一次或多次
| 或
示例:
數字為1-255之間的整數
ifconfig|grep --color -E ""