星號*:
匹配它前面的字串或正規表示式任意次(包括0次)。比如:1122*可能匹配的字串有:
112、1122、1122222、1123131231 ......
句號.:
匹配除換行符之外的任意乙個字元。比如:"
112.
",將匹配112+至少乙個字元
可能匹配的字串有:
1121、1122、112abc、1123131231 ......,但不匹配112
插入符號^:
匹配一行的開始,但有時依賴於上下文環境,可能表示否定正規表示式中乙個字串的意思。比如:「^abc」只匹配行首為abc的字串
美元符$:
在乙個正規表示式的末尾,匹配一行的結尾。比如:"
123$
",將只能匹配到行尾為123的字元行,"
^$"匹配匹配乙個空行。
方括號:
匹配方括號內指定的字母集中的乙個字元。比如:"
[abc]
",將匹配字元a、b、c中的任意乙個字元;而"
[^abc]
",將匹配除abc之外的所有字元。
反斜線符號\:
轉義乙個特殊的字元,使這個字元得到字面意義的解釋。比如:"
\$",將表示它的原意"
$";"
\\",表示"
\"。
轉義尖括號\<\>:
用於標記單詞邊界。尖括號必須是轉義的,否則它們只是字元的字面含義。比如:"
\"匹配"
the",但不匹配"
them
","there
"。
問號?:
匹配0個或1個前面的字元,用於匹配單個字元。比如:"
ab?c
",將匹配"
ac"或"
abc"。
加號+:
匹配乙個或多個前面的字元,它和星號*很相似,單它不匹配0個字元的情況。比如:"
ab+c
"將匹配"
abc","
abbc
","abbb...c
"等。
轉義波形括號\:
指示匹配前面正規表示式的次數。波形括號必須是轉義的,否則只有字元的字面含義。比如:"
[0-9]\
"將匹配5位數字。
圓括號():
包含一組正規表示式。與"|"或expr操作符一起使用。
豎線|:
正規表示式的"或"操作符匹配一組可選的字元。
比如:"
a(b|c)d
"將匹配"
abd"或"
acd"。
正規表示式比較操作符:
[weblogic@etpmalldev6 logs]$ digit=132[weblogic@etpmalldev6 logs]$ [[ $digit =~ [0-9
] ]]
[weblogic@etpmalldev6 logs]$ echo $?
0[weblogic@etpmalldev6 logs]$ digit="
sfsfs
"[weblogic@etpmalldev6 logs]$ [[ $digit =~ [0-9
] ]]
[weblogic@etpmalldev6 logs]$ echo $?
1
例項:測試資料:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ cat list.txt1122
11211222
2211
22111
1122222112
3131231112112
abdde
abede
bbcdefss
bbdde
the people
's replublic of china
fafslk;kfak
fdoutjjlsjpwkfks
fasfsafsafsfsaf
fsafsfaffs
abdabeccde
查詢包含字串"112"且其後至少有乙個字元的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "112.
"list.txt
1122
11222
1122222112
3131231112112
查詢字元"d"和"e"之間有乙個任意字元的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "d.e"
list.txt
abdde
bbdde
查詢在字元"2"後有兩個任意字元的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "2.."
list.txt
11222
2211
22111
1122222112
3131231112112
查詢/etc/passwd檔案中root賬號的資訊,
不使用插入符號^匹配:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "root
" /etc/passwd
root:x:
0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
查詢/etc/passwd檔案中root賬號的資訊,使用插入符號^匹配:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "^root
" /etc/passwd
root:x:
0:0:root:/root:/bin/bash
檢視有空行有多少行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "^$" list.txt | wc -l
1
檢視所有匹配112*的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "112*
"list.txt
1122
11211222
2211
22111
1122222112
3131231112112
檢視所有以數字"3"開頭,"2"結尾的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "\<3.*2\>
" list.txt --color
3131231112112
檢視檔案中含有至少11個連續小寫字母的行:
[weblogic@etp-mall-dev7][/tpdata/shell_script]$ grep "[a-z]\
"list.txt
bbcdefss
the people
's replublic of china
fdoutjjlsjpwkfks
abdabeccde
bash正規表示式
1.1 正規表示式 正規表示式 regular expression 是一種字元模式 pattern 用來匹配字串中的子串。例如 ro t 可以匹配 root rooot等 ro t 可以匹配 rot root rooot等1.1 正規表示式元字元 元字元是具有特殊含義的字元,不同於字元表面的含義。...
bash 正規表示式初步 sed
sed是一種流編輯器,它是文字處理中非常中的工具,能夠完美的配合正規表示式使用,功能不同凡響。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案...
正規表示式 正規表示式 總結
非負整數 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...