麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Linux Shell > 正文

shell高級學(xué)習(xí)之正則表達(dá)式

2020-07-27 18:44:52
字體:
供稿:網(wǎng)友

正則表達(dá)式概述

正則表達(dá)式是一種定義的規(guī)則,Linux工具可以用它來過濾文本。

基礎(chǔ)正則表達(dá)式

純文本

[root@node1 ~]# echo "this is a cat" | sed -n '/cat/p'this is a cat[root@node1 ~]# echo "this is a cat" | gawk '/cat/{print $0}'this is a cat

 正則表達(dá)式的匹配非常挑剔,尤其需要記住,正則表達(dá)式區(qū)分大小寫。

特殊字符

正則表達(dá)式識別的特殊字符包括:

.*[]^${}/+?|()

如果要使用某個特殊字符作為文本字符,就必須轉(zhuǎn)義,一般用(/)來轉(zhuǎn)義。

[root@node1 ~]# echo "this is a $" | sed -n '//$/p'this is a $

錨字符

有兩個特殊字符可以用來將模式鎖定在數(shù)據(jù)流的行首或行尾

脫字符(^)定義從數(shù)據(jù)流中文本行的行首開始的模式。

美元符($)定義了行尾錨點。

[root@node1 ~]# echo "this is a cat" | sed -n '/^this/p'this is a cat[root@node1 ~]# echo "this is a cat" | sed -n '/cat$/p'this is a cat

在一些情況下可以組合使用這兩個命令

1.比如查找只含有特定文本的行

[root@node1 ljy]# more test.txt  this is a dogwhathowthis is a catis a dog[root@node1 ljy]# sed -n '/^is a dog$/p' test.txtis a dog[root@node

2.兩個錨點組合起來,可以直接過濾空白行

[root@node1 ljy]# more test.txt  this is a dogwhathow this is a catis a dog[root@node1 ljy]# sed '/^$/d' test.txt this is a dogwhathowthis is a catis a dog

點號字符

點號用來匹配除換行符外的任意單個字符,他必須匹配一個字符。

[root@node1 ljy]# more test.txtthis is a dogwhathowthis is a catis a dogat[root@node1 ljy]# sed -n '/.at/p' test.txtwhatthis is a cat

字符組

限定待匹配的具體字符,使用字符組。使用方括號來定義一個字符組。

[root@node1 ljy]# more test.txtthis is a dogthis is a Dogthis is a DoGthis is a cat[root@node1 ljy]# sed -n '/[dD]og/p' test.txtthis is a dogthis is a Dog[root@node1 ljy]# sed -n '/[dD]o[gG]/p' test.txt this is a dogthis is a Dogthis is a DoG

排除型字符組

要排除某些特定的元素,要在字符組前面加個脫字符。

[root@node1 ljy]# sed -n '/[dD]o[gG]/p' test.txt this is a dogthis is a Dogthis is a DoG[root@node1 ljy]# sed -n '/[^D]og/p' test.txt this is a dog

區(qū)間

正則表達(dá)式會包括此區(qū)間內(nèi)的任意字符。

[root@node1 ljy]# more test.txt1231231231121222222412345341613vsdvsqwer123441231234534211444444[root@node1 ljy]# sed -n '/^[0-9][0-9][0-9][0-9][0-9]$/p' test.txt1234534211

拓展正則表達(dá)式

問號

問號表明前面的字符出現(xiàn)0次或者1次,僅限于此。

[root@node1 ljy]# echo "bat" | gawk '/ba?t/{print $0}' bat[root@node1 ljy]# echo "baat" | gawk '/ba?t/{print $0}'[root@node1 ljy]# echo "bt" | gawk '/ba?t/{print $0}' bt

可以將問號和字符組一起使用

[root@node1 ljy]# echo "bt" | gawk '/b[ae]?t/{print $0}'bt[root@node1 ljy]# echo "bat" | gawk '/b[ae]?t/{print $0}'bat[root@node1 ljy]# echo "bet" | gawk '/b[ae]?t/{print $0}'bet[root@node1 ljy]# echo "baat" | gawk '/b[ae]?t/{print $0}'

加號

加號表明前面的字符可以出現(xiàn)一次或多次,但至少是1次。

[root@node1 ljy]# echo "baat" | gawk '/b[ae]+t/{print $0}'baat[root@node1 ljy]# echo "bt" | gawk '/b[ae]+t/{print $0}' [root@node1 ljy]# echo "bt" | gawk '/ba+t/{print $0}' [root@node1 ljy]# echo "bat" | gawk '/ba+t/{print $0}'bat[root@node1 ljy]# echo "baat" | gawk '/ba+t/{print $0}'baat

花括號

ERE中的花括號允許你為可重復(fù)的正則表達(dá)式規(guī)定上下限。

m,n最少出現(xiàn)m此,最多出現(xiàn)n次。

[root@node1 ljy]# echo "baat" | gawk '/b[ae]{1,2}t/{print $0}' baat[root@node1 ljy]# echo "baaat" | gawk '/b[ae]{1,2}t/{print $0}'

管道符號

用邏輯or的方式指定正則表達(dá)式規(guī)則,其中一個條件符合要就即可。

表達(dá)式分組

正則表達(dá)式分組也可以用圓括號進(jìn)行分組。

[root@node1 ljy]# echo "bat" | gawk '/b(a|e)t/{print $0}'  bat[root@node1 ljy]# echo "baat" | gawk '/b(a|e)t/{print $0}'[root@node1 ljy]# echo "bet" | gawk '/b(a|e)t/{print $0}' bet

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人在线精品视频 | 久久国产精品一区 | 成人国产精品久久 | 午夜精品福利在线观看 | 国产精品久久久久久影院8一贰佰 | 一级大黄毛片 | 国产一区精品在线观看 | 成人毛片100部免费观看 | 91精品国产免费久久 | 91成人影库 | 成人wxx视频免费 | 91精品久久久久久久 | 久久精品成人 | 久久99精品久久久久久园产越南 | 91久久国产综合久久91猫猫 | 免费国产网站 | 91久久久久久亚洲精品禁果 | 精品久久一区二区 | 亚洲一区二区中文字幕在线观看 | 国产精品视频一区二区噜噜 | 成人免费看片a | av在线更新 | 欧美 videos粗暴 | 999精品久久久 | 欧美一级黄色片免费观看 | 亚洲影视中文字幕 | 最新中文字幕在线视频 | 亚州综合一区 | 久久千人斩 | 欧美18—19sex性hd| 成人区一区二区 | 久草热久草视频 | 日本免费不卡一区二区 | 99精品国产小情侣高潮露脸在线 | 黄色av网站免费 | 国产精品视频在线观看免费 | 亚洲午夜影院在线观看 | 久久精品国产精品亚洲 | 久久情爱网 | 圆产精品久久久久久久久久久 | 一级做受毛片免费大片 |