下表是鸟哥给的Linux下的通配符
符� | �热� |
* | �f用字元,代表 0 ��或多��字元(或�底郑� |
? | �f用字元,代表『一定有』一��字母 |
# | �]解,�@��最常被使用在 script ��中,��檎f明! |
/ | 跳�符�,��『特殊字元或�f用字元』�原成一般字元 |
| | 分隔���管�命令的界定; |
; | �B�m性命令的界定(注意!�c管�命令�K不相同) |
~ | 使用者的家目� |
$ | 亦即是��抵�前需要加的��等〈�值 |
& | �⒅噶钭�成背景下工作 |
! | ���\算意�x上的『非』 not 的意思! |
/ | 路�椒指舻姆�� |
>,>> | �出��向,分�e是『取代』�c『累加』 |
' | �我��,不具有��抵�Q的功能 |
" | 具有��抵�Q的功能! |
` ` | ���『 ` 』中�g�榭梢韵�绦械闹噶睿� |
( ) | 在中�g�樽� shell 的起始�c�Y束 |
[ ] | @H_403_111@在中�g�樽衷�的�M合|
{ } | 在中�g�槊�令�^�K的�M合! |
下表是鸟哥总结的正则表达式的字符
RE 字符 | 意�x�c�例 |
^word | 待搜�さ淖执�(word)在行首! |
�例:grep -n '^#' regular_express.txt 搜�ば惺�� # �_始的那一行! |
|
word$ | 待搜�さ淖执�(word)在行尾! |
�例:grep -n '!$' regular_express.txt �⑿形�� ! 的那一行列印出�恚� |
|
. | 代表『任意一��』字符,一定是一��任意字符! |
�例:grep -n 'e.e' regular_express.txt 搜�さ淖执�可以是 (eve) (eae) (eee) (e e), 但不能�H有 (ee) !亦即 e �c e 中�g『一定』�H有一��字元,而空白字元也是字元! |
|
/ | 跳�字符,�⑻厥夥��的特殊意�x去除! |
�例:grep -n /' regular_express.txt 搜�ず�有�我�� ' 的那一行! |
|
* | 重�}零��或多��的前一�� RE 字符 |
�例:grep -n 'ess*' regular_express.txt 找出含有 (es) (ess) (esss) 等等的字串,注意,因�� * 可以是 0 ��,所以 es 也是符合��搜�ぷ执�。另外,因�� * �橹匮}『前一�� RE 字符』的符�, 因此,在 * 之前必�要�o接著一�� RE 字符喔!例如任意字元�t�� 『.*』 ! |
|
/{n,m/} | �B�m n 到 m ��的『前一�� RE 字符』 若�� /{n/} �t是�B�m n ��的前一�� RE 字符, 若是 /{n,/} �t是�B�m n ��以上的前一�� RE 字符! |
�例:grep -n 'Go/{2,3/}g' regular_express.txt 在 g �c g 之�g有 2 ��到 3 ��的 o 存在的字串,亦即 (goog)(gooog) |
|
[] | 字元集合的 RE 特殊字符的符� |
[list] �例:grep -n 'g[ld]' regular_express.txt 搜�ず�有 (gl) 或 (gd) 的那一行~ 需要特�e留意的是,在 [] ��中『�代表一��待搜�さ淖衷�』, 例如: a[afl]y 代表搜�さ淖执�可以是 aay,afy,aly 亦即 [afl] 代表 a 或 f 或 l 的意思! [ch1-ch2] �例:grep -n '[0-9]' regular_express.txt 搜�ず�有任意�底值哪且恍校⌒杼�e留意,在字元集合 [] 中的�p� - 是有特殊意�x的,他代表���字元之�g的所有�B�m字元!但�@���B�m�c否�c ASCII ��a有�P, 因此,您的��a需要�O定正�_(在 bash ��中,需要�_定 LANG �c LANGUAGE 的��凳欠裾��_!) 例如所有大��字元�t�� [A-Z] [^] �例:grep -n 'oo[^t]' regular_express.txt 搜�さ淖执�可以是 (oog) (ood) 但不能是 (oot) ,那�� ^ 在 [] ��r, 代表的意�x是『反向�x�瘛坏囊馑肌�例如,我不要大��字元,�t�� [^A-Z] ~ 但是,需要特�e注意的是,如果以 grep -n [^A-Z] regular_express.txt �硭�ぃ� �s�l�F��n案�鹊乃�有行都被列出,�槭颤N?因�檫@�� [^A-Z] 是『非大��字元』的意思, 因�槊恳恍芯�有非大��字元,例如第一行的 "Open Source" 就有 p,e,n,o.... 等等的小��字元, 以及�p引� (") 等字元,所以��然符合 [^A-Z] 的搜�ぃ� |
基本上解释就是通配符是系统命令使用,一般用来匹配文件名或者什么的用在系统命令中。而正则表达式是操作字符串,以行尾单位来匹配字符串使用的。
还有一点需要注意的是:*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个字符,不能独立使用的。比如通配符可以用*来匹配任意字符,而正则表达式不行,他只匹配任意长度的前面的字符。