<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > Linux正則表達(dá)式

          Linux正則表達(dá)式

          作者: 時間:2024-05-20 來源:網(wǎng)絡(luò) 收藏

          一,正則表達(dá)式

          1,正則表達(dá)式由一堆特殊符號和字母構(gòu)成----元字符

          本文引用地址:http://www.ex-cimer.com/article/202405/458943.htm

          一些具有特殊含義的符號:? . * + ^ $ () {}

          作用
          1)對文本中內(nèi)容進(jìn)行過濾
          2)對文件中的內(nèi)容進(jìn)行過濾
          正則表達(dá)式的種類:
          • 基礎(chǔ)正則表達(dá)式

          • 擴展正則表達(dá)式

          通常結(jié)合三個命令來使用:
          • grep

          • sed

          • awk

          1,grep 命令:
          作用:對文件中的內(nèi)容進(jìn)行過濾
          格式: grep 選項 匹配內(nèi)容 文件
          選項:
          • -v:取反

          • -o:僅僅顯出所匹配的內(nèi)容

          • -E:使用擴展

          • -i:忽略大小寫

          例:從 a.txt 文件中過濾出包含 root 的行
          grep "root" a.txt
          例:從 a.txt 文件中過濾出不包含 root 的行
          grep -v "root" a.txt

          例:從a.txt文件中過濾出僅僅顯示root的行

          grep -o "root" a.txt

          例:統(tǒng)計a.txt文件中有多少個root

          grep -o "root" a.txt |wc -w
          通配符和正則的區(qū)別:
          通配符:針對文件名進(jìn)行匹配查找的
          正則表達(dá)式:針對文件的內(nèi)容進(jìn)行匹配查找的
          匹配行首: ^
          匹配行尾:$
          匹配單詞首部:/<
          匹配單詞尾部:/>

          二,正則表達(dá)式中元字符:

          1)匹配單個字符

          .  表示任意一個字符(可以空格 逗號 字母 數(shù)字 ... )
          例:匹配 a 前面有一個字符的行
          grep ".a" 11.txt

          2)[ ]表示范圍內(nèi)中的一個

          • [123] 表示匹配1或2或3

          • [0-9]匹配所有的數(shù)字

          • [A-Z]匹配所有大寫的字母

          • [a-z]匹配所有小寫的字母

          • [a-Z]匹配所有的字母

          例:匹配文件中包含數(shù)字的行
          grep [0-9] file
          例:包含字母 a 的行
          grep "a" file

          3)用字符集的方式表達(dá)

          • [[:space:]]:表示一個空格

          • [[:digit:]]:表示任意一個數(shù)字

          • [[:lower:]]:表示任意一個小寫字母

          • [[:upper:]]:表示任意一個大寫字母

          • [[ :alpha: ]]:表示任意一個字母

          • [[ :alnum: ]]:表示任意一個字母+數(shù)字

          • [[:punct:]]:表示任意一個標(biāo)點符號

          • [[:digit:][:space:]] 表示一個空格或者任意一個數(shù)字

          例:匹配一個包含小寫字母的行
          grep [a-z] filegrep [[:lower:]] file

          4) ^[ ]

          例:匹配以 # 開頭的行
          grep ^[#] file
          [^a] 匹配除了 a 以外的任意字符
          grep [^a] file
          例:過濾沒有包含 qaz 的行
          grep [^qaz] file

          例:過濾出#開頭后面有一個空格的行

          grep "^#[[:space:]]" 11.txt

          5)顯示匹配到的行的前的若干行

          • -An:顯示匹配到的內(nèi)容的后n行

          • -Bn:顯示匹配到的內(nèi)容的前n行

          • -Cn:顯示匹配到的內(nèi)容的前后各n行

          例:匹配包含 root 的行的前 3 行
          grep -B3 "root" file

          6) 次數(shù)匹配

          ”*“   前面字符出現(xiàn)了任意次數(shù)( 0.1.n ) 例子: a*
          ”.*“   表示任意長度的任意字符
          例: a.*b
          grep "a.*b" 11.txt

          ”?“表示其前面字符出現(xiàn)最多一次


          • a{m,n}b                        b前面的a至少出現(xiàn)m次,最多n次

          • -E a{m,n}b                      b前面的a至少出現(xiàn)m次,最多n次

          • grep -E "a{1,}b" 11.txt     b前面的a至少1次最多不限

          • grep -E "a{1,1}b" 11.txt   b前面的a1次

          • grep -E "a?b" 11.txt         b前面的a1次

          7)位置錨定

          • ^ 表示以n為開頭的行

          • $ 表示以n為結(jié)尾的行

          例:以 yum 為結(jié)尾的行
          grep "yum$" file
          • <n 表示單詞首部

          • n> 表示單詞尾部

          • ^$ 表示空白行

          8)分組

          •  將一個內(nèi)容當(dāng)作一個整體看待

          • 1 引用第一個分組的內(nèi)容

          • 2 引用第二個分組的內(nèi)容

          例:在 11.txt 中,過濾出出現(xiàn)過倆個相同數(shù)字的行
          grep "([[:digit:]]).*1" 11.txt
          測試
          i love my loverhe love his likershe like her lovershe love her liker
          例:輸出前面一致的行,例如前后都是love或者前后都是like
          grep -E "(l..e).*1" 5.5xt

          擴展正則表達(dá)式:

          • 基礎(chǔ)正則:grep [選項] 匹配內(nèi)容 文件

          • 擴展:

          1. grep -E 匹配內(nèi)容 文件

          2. egrep 匹配內(nèi)容 

          文件{1,}:其前面的字符至少出現(xiàn)過1次

           + :其前面的字符至少出現(xiàn)過1次

          9)或:|

          例:過濾出開頭是 a (不區(qū)分大小寫)的行
          egrep "^(a|A)" 11.txtegrep "^[aA]" 11.txt
          測試對象
          sadfa cat asfasdf Cat a asdf
          例:匹配cat Cat
          grep -E "(c|C)at" 6.txtgrep -E "(cat|Cat)" 6.txt


          關(guān)鍵詞: Linux 代碼 PCB

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();