在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ shell 學(xué)習(xí)第九天----分組
shell 學(xué)習(xí)四十一天----列出文件 ls 和 od 命令
shell 學(xué)習(xí)小結(jié)
shell 學(xué)習(xí)第二十八天----case 語(yǔ)句
shell 學(xué)習(xí)四十四天----尋找文件
shell 學(xué)習(xí)三十五天----波浪號(hào)展開與通配符
shell 學(xué)習(xí)三十八天----執(zhí)行順序和 eval
shell 學(xué)習(xí)四十八天----文件校驗(yàn)和匹配
shell 學(xué)習(xí)四十天----awk 的驚人表現(xiàn)
shell 學(xué)習(xí)第十一天----sed 正則的精確控制
shell 學(xué)習(xí)第十七天----awk 命令
shell 學(xué)習(xí)三十九天----內(nèi)建命令
shell 學(xué)習(xí)四十五天----xargs
shell 學(xué)習(xí)三十七天----引用
shell 學(xué)習(xí)第十六天----join 練習(xí)
shell 學(xué)習(xí)第二十四天----提取開頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)第九天----分組
shell 學(xué)習(xí)第五天----基本的 I/O 重定向
shell 學(xué)習(xí)第十五天----使用 cut 選定字段
shell 學(xué)習(xí)四十六天----文件系統(tǒng)的空間信息 df 和 du 命令
shell 學(xué)習(xí)第八天----擴(kuò)展正則表達(dá)式 (ERE)
shell 學(xué)習(xí)第十九天----文本塊排序
shell 學(xué)習(xí)第二十一天----重新格式化段落
shell 學(xué)習(xí)三十六天----命令替換
shell 學(xué)習(xí)第二十天----sort 的其他內(nèi)容以及 uniq 命令
shell 學(xué)習(xí)四十二天----使用 touch 更新文件時(shí)間
shell 學(xué)習(xí)五十一天----top 命令查看進(jìn)程列表
shell 學(xué)習(xí)第一天
shell 學(xué)習(xí)五十四天----進(jìn)程系統(tǒng)調(diào)用的追蹤 strace
shell 學(xué)習(xí)五十天----查看進(jìn)程 ps 命令
shell 學(xué)習(xí)第二十七天----退出狀態(tài)和 if 語(yǔ)句
shell 學(xué)習(xí)第二十三天----打印
shell 學(xué)習(xí)三十三天----關(guān)于重定向
shell 學(xué)習(xí)四十九天----進(jìn)程建立
shell 學(xué)習(xí)第三十天----break,continue,shift,getopts
shell 學(xué)習(xí)五十五天----進(jìn)程記賬
shell 學(xué)習(xí)總結(jié)一
shell 學(xué)習(xí)第二十六天----變量與算數(shù)
shell 學(xué)習(xí)第二十二天----計(jì)算行數(shù), 字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)五十八天----/proc 文件系統(tǒng)
shell 學(xué)習(xí)第二十五天----神器的管道符
shell 學(xué)習(xí)第三十二天----read 讀取一行
sheel 學(xué)習(xí)第三天
shell 學(xué)習(xí)----小結(jié)
shell 學(xué)習(xí)第十八天----文本排序
shell 學(xué)習(xí)第三十一天----函數(shù)問題
shell 學(xué)習(xí)第十天----sed 查找與替換
shell 學(xué)習(xí)四十三天----臨時(shí)性文件的建立與使用
shell 學(xué)習(xí)四十七天----文件比較 cmp,diff,patch
shell 學(xué)習(xí)三十四天----printf 詳解
shell 學(xué)習(xí)五十七天 ----linux 任務(wù)管理,針對(duì)上一講的總結(jié)和擴(kuò)展
shell 學(xué)習(xí)第六天----小結(jié)
shell 學(xué)習(xí)第十三天----sed 案例分析
shell 學(xué)習(xí)第七天----基礎(chǔ)正則表達(dá)式 (BRE)
shell 學(xué)習(xí)第十二天----行與字符串
shell 學(xué)習(xí)小結(jié)四
shell 學(xué)習(xí)第二十九天----循環(huán)
shell 學(xué)習(xí)五十二天----刪除進(jìn)程 kill 命令
shell 學(xué)習(xí)五十六天----延遲進(jìn)程調(diào)度
shell 學(xué)習(xí)第四天----華麗的 printf 輸出
shell 學(xué)習(xí)第十五天----join 連接字段
shell 學(xué)習(xí)完結(jié)篇----希望你能看到
shell 學(xué)習(xí)第二天
shell 學(xué)習(xí)五十三天----捕獲信號(hào) trap

shell 學(xué)習(xí)第九天----分組

分組

基本正則表達(dá)式中支持分組,而在擴(kuò)展正則表達(dá)式中,分組的功能更加強(qiáng)大,也可以說(shuō)才是真正的分組,用法如下:

():分組,后面可以使用 \1 \2 \3... 引用前面的分組,除了方便后面引用外,分組還非常方便的可以使用上述次數(shù)匹配方法進(jìn)行匹配具有相同條件的數(shù)據(jù)。

如:grep '^(barlow).*\1' /etc/passwd 搜索 /etc/passwd 中以 barlow 開頭,而后面還存在 barlow 的行。

在 BRE 中,我們使用一些 meta 字符修飾前置字符,匹配重復(fù)的情況。但是這樣的操作僅僅針對(duì)單個(gè)字符。在 ERE 中,分組功能能夠計(jì) meta 字符修飾前置字符串。一個(gè)針對(duì)字符,一個(gè)針對(duì)字符串。

在 ERE 里,我么已經(jīng)提到運(yùn)算符是被應(yīng)用到” 前置的正則表達(dá)式”。這是因?yàn)橛袌A方括號(hào) ({...}) 提供分組功能,讓接下來(lái)的運(yùn)算符可以應(yīng)用。例如 (why)+ 匹配于一個(gè)或連續(xù)重復(fù)的多個(gè) why。再例如:[Tt]he (CPU|computer) is 指的是: 在 the(The) 與 is 之間,含有 CPU 或 computer 的句子。特別注意: 圓括號(hào)里的是 meta 字符,而非要匹配的輸入文本。由此看出用到交替的時(shí)候,分組特別有用。

例如 (read|write)+ 指的是: 有一個(gè)或重現(xiàn)多個(gè) read,或者一個(gè)或重現(xiàn)多個(gè) write.(read|write)+ 所指的字符串中間,不允許有空白。當(dāng)將交替操作結(jié)合 ^ 與 $ 錨點(diǎn)字符使用時(shí),分組就非常好用了。由于 | 為所有運(yùn)算符中優(yōu)先級(jí)最低的,因此正則表達(dá)式 ^abcd|efgh$ 意思是” 匹配字符串的起始處是否具有 a b c d 或者字符串結(jié)尾是否具有 e f g h”(表示查找字符),這和 ^(abcd)|(efgh)$ 不一樣,后者的意思是” 找一個(gè)正好是 abcd 或正好是 efgh 的字符串”

停駐文本匹配 (錨點(diǎn))

  • “^” 與”$” 在 ERE 和 BRE 表示的含義是相同的,需要注意的是他們?cè)诜嚼ㄌ?hào)表達(dá)式中將會(huì)失去他們的特殊意義;
  • 組合使用,例如 this is ^(one|two)$ 匹配 one 或者 two。在 ERE 里,^$ 永遠(yuǎn)是 meta 字符。所以,像 ab^cdef$gh 這樣的正則表達(dá)式仍然是有效的,只是無(wú)法匹配到任何東西,因?yàn)?^ 前面有其他的字符串,$ 后面也有字符串,失去了他們的特殊含義。

ERE 運(yùn)算符的優(yōu)先級(jí)

運(yùn)算符
含義
[..]  [= =]  [:  :]
用于字符對(duì)應(yīng)的方括號(hào)符號(hào)
\metacharacter
轉(zhuǎn)移的 meta 字符
[]
方括號(hào)表達(dá)式 
()
分組
*  +  ?  {}
重復(fù)潛質(zhì)的正則表達(dá)式
無(wú)符號(hào) (no symbol)
連續(xù)字符
^    $
錨點(diǎn)
|
交替

正則表達(dá)式的擴(kuò)展

最常見的擴(kuò)展為 \<\> 運(yùn)算符, 分別匹配” 單詞 (word)” 的開頭與結(jié)尾, 單詞是由字母, 數(shù)字及下劃線組成的。我們稱這類字符為單詞組成。

例如:\<chop 匹配于 use chopsticks,但是 eat a lambchop 則不匹配;同樣的 chop>\ 匹配與第二個(gè)字符串,第一個(gè)則不匹配。特別注意\<chop>\ 的表達(dá)式下,兩個(gè)字符串都不匹配。

額外的 GNU 正則運(yùn)算符

運(yùn)算符
含義
\w
匹配任何單詞組成字符
\W
匹配任何非單詞組成字符
\<\>
匹配單詞的起始和結(jié)尾
\b
匹配單的起始或結(jié)尾處所找到的空字符串 / 這是 \< 與 >\ 運(yùn)算符的結(jié)合. 注意: 由于 awk 使用 \b 表示后退運(yùn)算符, 因此 GNU awk(gawk) 使用 \y 表示此功能。
\B
匹配兩個(gè)單詞組成字符之間的空字符串
\’ \ `
分別匹配 emacs 緩沖區(qū)的開始與結(jié)尾.GNU 程序 (wmacs) 通常將他們是位 ^ 和 $ 同義。

例子:'<!-\?[^-]\+'#< 后面是 ! 然后是 0~1 個(gè)-,最后是一個(gè)非-字符。