——from 《鳥哥的Linux私房菜》
從網上看到的總結,覺得很好:
1、通配符是系統level級的,多用在文件名上,比如find、ls、cp等。
2、正則表達式則是針對文件內容的,需要相關工具的支持,例如grep、egrep、vi、awk等。
通配符:
通配符 | 內容 |
---|---|
* | 代表0個或多個字符 |
? | 代表一個任意字符 |
# | 註釋 |
\ | 轉義字符 |
| | 分隔兩個管道命令的界定 |
; | 分隔多條命令的界定 |
~ | 家目錄 |
$ | 變量之前需要加的變量取代值 |
& | 命令後跟該符號,表示命令後臺執行 |
! | 邏輯非 |
/ | 目錄分隔符 |
> , >> | 重定向,表示替換或者追加 |
' | 單引號,不支持變量置換 |
" | 雙引號,支持變量置換 |
` | ``之間的命令可以先執行 |
[] | 在中間爲字符的組合 |
() | 在中間爲子shell的起始與結束 |
{} | 在中間爲命令區塊的組合 |
正則表達式:
RE字符 | 意義與範例 |
^word | 待搜索的字符串word在行首 |
word$ | 待搜索的字符串word在行末 |
. | 代表任意一個字符 |
\ | 轉義字符 |
* | 重複0個或多個前一個RE字符 |
\{n,m\} | 連續n到m個前一個RE字符 |
若爲\{n\},則表示連續n個前一個RE字符 | |
若爲\{n,\},則表示連續n個以上的前一個RE字符 | |
[] | [list] 當中只代表一個待搜索的字符 |
[ch1-ch2] 代表ch1至ch2區間內的所有字符 | |
[^] 代表反向選擇 | |