---恢復內容開始---
正則就是用一些具有特殊含義的符號組合到一起(稱為正規表示式)來描述字元或者字串的方法。或者說:正則就是用來描述一類事物的規則。
grep:文字搜尋
-n :顯示行號
-o :只顯示匹配的內容
-q :靜默模式,沒有任何輸出,得用$?來判斷執行成功沒有,即有沒有過濾到想要的內容
-l :如果匹配成功,則只將檔名列印出來,失敗則不列印,通常-rl一起用,grep -rl 'root' /etc
-a :如果匹配成功,則將匹配行及其後n行一起列印出來
-b :如果匹配成功,則將匹配行及其前n行一起列印出來
-c :如果匹配成功,則將匹配行及其前後n行一起列印出來
--color
-c :如果匹配成功,則將匹配到的行數列印出來
-e :等於egrep,擴充套件
-i :忽略大小寫
-v :取反,不匹配
-w:匹配單詞
介紹:^:以什麼什麼開頭
$:以是什麼什麼結尾
*:左邊字元零個或多個
.*:所有字元
.:代表乙個字元
:左邊字元有n個
$:左邊字元n個結尾
:字元組內的任一字元
[a-z]:a到z中任一單字元
[a-za-z]:a到z和a到z中任一單字元
[a-z]:就是[a-za-z]
擴充套件正則
grep 加 -e 或 egrep 或轉義
?:左邊字元為零個或1個
+: 前導字元乙個或多個
abc|def abc或def
a(bc|de)f abcf 或 adef
x\ x出現m次
x\ x出現m次至多次(至少m次)
x\ x出現m次至n次
作業
grep作業(正規表示式及字元處理)
目標檔案/etc/passwd,使用grep命令或egrep
1.顯示出所有含有root的行:
#grep 'root' /etc/passwd
2.輸出任何包含bash的所有行,還要輸出緊接著這行的上下各兩行的內容:
#
grep -c 2 'bash' /etc/passwd
3. 顯示出有多少行含有nologin。
#grep -c 'nologin' /etc/passwd
4.顯示出那些行含有root,並將行號一塊輸出。
#
grep -n 'root' /etc/passwd
5.新建使用者
abominable
abominate
anomie
atomize
編寫正規表示式,將他們匹配出來
#
egrep 'a.omi(nabl|nat|z|)e' /etc/passwd
6.建四個使用者
alex213sb
wpq2222b
yh438pig
egon666
egon
過濾出使用者名稱組成是字母+數字+字母的行
#
egrep '^[a-z]+[0-9]+[a-z]+' /etc/passwd
7.顯示出/etc目錄下所有包含root的檔名
#
find /etc | egrep 'root'
9. 過濾掉/etc/ssh/sshd_config內所有注釋和所有空行
#
grep -v '^#' /etc/ssh/sshd_config |grep -v '^ *$'
---恢復內容結束---
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...