


Linux Shell下正則表達(dá)式的元字符
^ 行首定位符 /^love/ 匹配以love 開頭的行
$ 行尾定位符 /love$/ 匹配以love結(jié)尾的行
. 匹配單個(gè)字符 /l..e/ 匹配包含一個(gè)l 后跟2個(gè)字符 再跟一個(gè)e的行
* 匹配0個(gè)或多個(gè)位于*號(hào)前的字符 / *love/ 匹配零個(gè)或多個(gè)空格后跟love的行
[ ] 匹配一組字符中的任意一個(gè) /[Ll]ove/匹配Love或love的行
[x-y] 匹配指定范圍內(nèi)的任意字符
[^] 匹配不在指定字符組內(nèi)的任意字符[^A-Z] 匹配不在A-Z之間的任意字符
用來轉(zhuǎn)義元字符 /love./ 匹配love后跟一個(gè)句點(diǎn)的行
< 詞首定位符 / > 詞尾定位符
x{m} 字符x重復(fù)出現(xiàn)m次
x{m,} 字符至少重復(fù)出現(xiàn)m次
x{m,n} 字符重復(fù)出現(xiàn)m 到 n 次
符上幾個(gè)命令:
查找以.conf .html結(jié)尾的文件
find /usr/local/ -type f -regex ".*(conf$|html$)"
分析提取日志
grep -v "(html$|jpg$|gif$)" /logs/1118.log | awk -F"(- -|Opera)" '{print $2}'
如果你用egrep的話就不用使用轉(zhuǎn)義元字符了
egrep -v "(html$|jpg$|cache)" /logs/1118.log | awk -F"(- -|Opera)" '{print $2}'
掌握了這些就和其它的命令find awk .......就隨意組合去吧
注意一點(diǎn):
正則表達(dá)式有基本正則表達(dá)式和擴(kuò)展正則表達(dá)式。在基本正則表達(dá)式中,原字符 | ,+ 和 ? 是不允許使用的。并且在使用含有圓括號(hào)和花括號(hào)的正則表達(dá)式時(shí),圓括號(hào)和花括號(hào)都要用反斜線轉(zhuǎn)義。在書寫正則表達(dá)式時(shí),比較好的做法是先寫出整個(gè)正則表達(dá)式,然后再用反斜線將需要轉(zhuǎn)義的字符轉(zhuǎn)義。如:grep是用的基本正則表達(dá)式 egrep就是用的擴(kuò)展正則表達(dá)式,擴(kuò)展正則表達(dá)式在grep中不能使用的。
符上一份和命令的正則元字符
ed + ? {} | ()
egrep + ? {} | ()
emacs + ? | ()
expect + ? | ()
find + ? | ()
gawk + ? {} | ()
grep + ? {} | ()
lex + ? {} | ()
lisp + ? \| \(\)
mawk + ? | ()
mysql + ? {} | ()
ooo + ? {} | ()
perl + ? {} | ()
php + ? {} | ()
postgres + ? {} | ()
procmail + ? | ()
python + ? {} | ()
sed + ? {} | ()
tcl + ? | ()
vbscripq + ? {} | ()
vi {1} {01} {} ()
vim + = {} | ()
NOTE: . [] [^] and * are the same on all programs.
關(guān)鍵字:Shell grep
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解