一、通配符基礎知識
功能:用一些特殊的符號,可以實現某些特殊的功能
適用范圍:是命令行中的普通命令或腳本程序中
二、通配符分類
(1)模糊匹配
*:匹配所有字符(一個或多個)
?:匹配單個字符(有且只有一個)
[abcd]:匹配任意一個字符。其中abcd可以是不連續的
[a-z]:匹配連續的任意單個字符或數字
!或^:取反,如:[^1-9]不是1至9的單個字符。調用最近使用的符合字符開頭的命令
(2)與路徑和位置有關的特殊符號
~:家目錄
-:上一次的目錄
.:當前目錄
..:上一級目錄
(3)引號相關
':單引號,所見即所得,原樣輸出單引號里面的內容
":引用字符串,特點是會解析變量、命令
``:反引號,引用命令。希望系統把字符串當作命令就用反引號。等價于$()
用途:比如打包的時候希望包名能夠按日志來:tar -zcvf a_$(date).tar.gz ./a.txt
(4)其他字符
;:命令分隔符
#:管理員提示符號,注釋符號
$:普通用戶提示符,調用變量使用
|:管道符,將前面的數據流交給后面的命令處理
\:轉義字符,讓字符還原本義
{}:生成序列、引用變量讓變量成為一個整體
&&:并且
||:或者
(5)重定向
三、正則表達式
1、基礎知識
(1)概念
what:表達式:是為處理大量的字符串及文本而定義的一套規則和方法
why:提高效率,快速獲取到想要的內容
where:適用于這三個命令:grep(egrep)、sed、awk。(注意:正則是以行為單位,一次處理一行)
how:
(2)正則的特點
1)為處理大量文本及字符串而定義的一套規則和方法
2)其工作時以行為單位進行,即一次處理一行
3)通過正則表達式可以將復雜的處理任務化繁為簡,提供操作Linux的效率
4)僅被三劍客命令(grep、egrep、sed、awk)支持,其他命令無法使用
2、正則表達式的分類
(1)基本正則表達式(和命令grep使用)
1)^:尖角號,以什么開頭。如:^oldboy,以oldboy開頭的行
2)$:以什么結尾。如oldboy$,以oldboy結尾的行
篩選所有的目錄:ls -hl|grep "^d" ./
ls -hl|grep "/$" ./
3)^$:篩選空行,即篩選沒有內容的那一行
4).:匹配任意一個且只有一個字符,類似于通配符的?
5)\:轉義字符
6)*:重復前面字符0次或者多次
.*:所有的,包含空行也會顯示出來
7)^.*:組合符,匹配以任意0個或多個字符開頭的行
.*$:以任意0個或多個字符結尾的行
8)[abc]:匹配集合內的任意一個字符a或b或c
[^abc]:匹配不包含集合內的任意字符的行
(2)擴展正則表達式(和egrep命令使用)
1)+:匹配前一個字符1次或1次以上