1.什麼是正則表達式
正則表達式就是處理字符串的方法,它是以行爲單位來進行字符串的處理行爲,正則表達式通過一些特殊符號的輔助,可以讓用戶輕易達到查找、刪除、替換某特定字符串的處理程序。
正則表達式基本上是一種“表示法”,只要工具程序支持這種表示法,那麼該工具程序就可以用來作爲正則表達式的字符串處理之用。
2.正則表達式的用途
- 對於系統管理員來說,在系統的數據量特別大的時候,想查看一行有問題的信息,就可以用正則表達式將信息來進行分析,這樣系統的管理工作就會更加方便。
- 郵件服務器,是最常見的使用正則表達式的地方。
3.基礎正則表達式
正則表達式只是處理字符串的一種表示方法,對字符排序有影響的語系數據就會對正則表達式的結果產生影響。正則表達式也需要支持工具程序輔助纔行,最簡單的字符串選取工具就是grep。
語系的影響
例如
- LANG=C時:0 1 2 3 4 … A B C D…Z a b c …z
- LANG=zh_CN時:0 1 2 3 … a A b B c C …z Z
爲了避免這樣的編碼所造成的英文與數字的選取問題,有些特殊的符號得讓我們瞭解一下。
特殊符號 | 代表意義 |
---|---|
[:alnum:] | 代表英文大小寫字符及數字,即0-9,A-Z,a-z |
[:alpha:] | 代表英文大小寫字符,即A-Z,a-z |
[:blank:] | 代表空格鍵和Tab按鍵 |
[:cntrl:] | 代表鍵盤上的控制按鍵,即包括CR,LF,Tab,Del等 |
[:digit:] | 代表數字而已,即0-9 |
[graph] | 除了空格符之外的所有字符 |
[:lower:] | 代表小寫字符,即a-z |
[:upper:] | 代表大寫字符,即A-Z |
:print: | 代表任何可以被打印出來的字符 |
[:punct:] | 代表標點符號(punctuation symbol),即" ’ ? / : ;# $ |
[:space:] | 任何會產生空白的字符,包括空格鍵[Tab]CR等 |
[:xdigit:] | 代表十六進制的數字類型,因此包括0-9,A-F,a-f的數字與字符 |
grep的一些高級參數
grep [-A][-B] [--color=auto] '搜尋字符串' filename
-A:後面可加數字,爲After的意思,除了列出該行外,後續的n行業列出來
-B:後面可加數字,爲befor的意思,除了列出該行外,前面的n行業列出來
--color=auto可將正確的那個選取數據列出顏色
dmesg 可列出內核產生的信息
grep是一個很常見也很常用的命令,它最重要的功能就是進行字符串數據的對比,然後將符合用戶需求的字符串打印出來,需要說明的是grep在數據中查找一個字符串時,是以整行爲單位來進行數據的選取的。
注意:
在關鍵字的顯示方面上,可以在~/.bashrc內加上這行:alias grep=‘grep --color=auto’,再以“source ~/.bashrc”來生效即可,這樣每次執行grep它都會自動幫你加上顏色顯示。