shell程式設計基礎 六 正規表示式

2021-06-02 14:40:58 字數 1509 閱讀 2931

shell程式設計基礎七---正規表示式

2011-04-04 15:37

正規表示式:

正規表示式就是用某種模式去匹配一類字串的乙個公式

正規表示式是通過正規表示式引擎來實現,它是解釋正規表示式的基礎軟體

linux中,常用的正規表示式引擎有兩種:基本正規表示式(bre)、擴充套件正規表示式(ere)

大多數linux程式符合擴充套件正規表示式,但有些程式(如sed)只符合ere的子集。

正規表示式的基礎

普通字元(無特殊含義)和元字元(有特殊含義)

正規表示式區分大小寫

元字元基本正則

.       匹配單個字元

*       匹配0個或多個字元

^       開始處

$       結尾

字元範圍

擴充套件正則

?       零個或乙個字元

+      乙個或多個字元

{}      用於指定出現次數

|       正規表示式作邏輯或

()      分組

其它(很多軟體不支援)      

\< \>  匹配單詞的開始和結束

\( \)   分組 例:

^   以什麼開頭(^一定要放在開始處,放在其它位置就作普通字元了)

ll | grep ^d  中顯示目錄 

cat /etc/passwd | sed -n '/^r/p'  

echo "this ^ is a test" | sed -n '/s ^/p'  -- ^作普通字元,沒出

現在最前

this ^ is a test

echo "this ^ is a test" | sed -n '/^ i/p'  -- 不是普通字元了

$ 結尾(要放在後面)

顯示系統中不能登入的使用者                

cat /etc/passwd | sed -n '/nologin$/p'

^$  空行

[root@t176 script]# cat test.txt | sed -n '/^this is a test$/p' --只包 含

this is a test

[yynn0-9] 

常見的正規表示式:

/^$/            空行

/^.*$/          整行

特殊字元類

[[:alpha:]]     任意字母

[[:alnum:]]             任意字母和數字

[[:blank:]]             空格或tab

[[:digit:]]             數字

[[:lower:]]             小寫字母

[[:print:]]             任意可列印字元

[[:space:]]             空格

[[:upper:]]             大寫字母

shell程式設計基礎 正規表示式

正規表示式 匹配包含的文字字串 正則是包含的關係,只要包含就匹配 grep v 取反 基礎正規表示式 使用grep e的時候最後三個 不要加反斜號 擴充套件正規表示式 練習題 1 顯示 proc meminfo檔案中以大寫s和a開頭的行 egrep a s proc meminfo2 顯示 etc ...

shell程式設計 正規表示式

正規表示式是用於字元排列和匹配模式的一種語法規則。它主要用於字串的模式分割 匹配 查詢及替換操作。萬用字元 元字元作用 前乙個字元匹配0次或任意多次。匹配除了換行符外任意乙個字元。匹配行首。例如 hello會匹配以hello開頭的行。匹配行尾。例如hello 會匹配以hello結尾的行。匹配中括號中...

shell程式設計 正規表示式

正規表示式是一種用於文字匹配的通用語言。正規表示式的基本組成部分 正規表示式 描述例子 行起始標記 abc匹配以abc起始的行 行結束標記 abc 匹配以abc結束的行 匹配任意乙個字元 abc 匹配abc後跟任意乙個字元 匹配包含在 字元 之中的任意乙個字元 abc de 匹配abcd 或者 ab...