day17--操作系統(tǒng)正則符號

系統(tǒng)通配符

*        匹配所有內(nèi)容
例:ls -l /oldboy/*.txt        --- 匹配以.txt結(jié)尾信息進行詳細顯示
    rm -rf  /oldboy/*          --- 刪除oldboy目錄中所有信息, 但是默認無法刪除隱藏文件
    rm -f   /oldboy/.old*.txt  --- 刪除以old開頭 .txt結(jié)尾的所有隱藏文件
  • {} --- 匹配序列信息
    數(shù)字序列
    字母序列
    組合序列
例:echo A{,2}   ---      A                                                         A2
                      /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt        .bak
    快速備份數(shù)據(jù)                
    cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt{,.bak}
    cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt  /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt.bak
    快速還原數(shù)據(jù)
    cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt{.bak,}
    cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt.bak  

    /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt
    cp messages{-20190707,}
  • 系統(tǒng)正則符號: grep sed awk
    基礎(chǔ)正則: basic    regular expression  BRE 
    擴展正則: extended regular expression  ERE

    終極目標:
    01. 文件test.txt 
    張三   110106198803076651
    李四   106106199903076651
    王五   oldboy
    # grep -vE "[0-9]+" test.txt 
    王五   oldboy

    文件內(nèi)容做修改
    張三   110106198803076651
    李四   106106199903076651
    王五   10101010100101
    周六   101010101010220101010
    grep -E "[0-9]{18}" test.txt   --- 將身份輸入不足18位的進行排除
    
  • 基礎(chǔ)正則
^   --- 以什么開頭的信息
        # ll /etc/|grep "^d"
        drwxr-xr-x.  3 root root      101 Jul  3 20:25 abrt
        drwxr-xr-x.  2 root root      252 Jul 17 18:13 alternatives
        drwxr-x---.  3 root root       43 Jul  3 20:26 audisp

$   --- 以什么結(jié)尾的信息
        grep 'd$' /etc/selinux/config
        SELINUX=disabled
        SELINUXTYPE=targeted
        說明: 如果結(jié)尾有空格信息, 過濾是會出現(xiàn)異常
              利用底行模式 :set list 可以查看結(jié)尾空格信息
              利用命令查看 cat -A /etc/selinux/config

        問題: 將以點結(jié)尾的信息過濾出來:
        grep '\.$' /etc/selinux/config
        # This file controls the state of SELinux on the system.
        #     enforcing - SELinux security policy is enforced.
        #     permissive - SELinux prints warnings insteadof enforcing.
        #     disabled- No SELinux policy is loaded.
        #     minimum - Modification of targetedpolicy. Only selectedprocesses are protected.
  • \ (不屬于正則) --- 轉(zhuǎn)義符號
        01. 將有特殊意義的符號, 還原本身符號意義

        02. 將沒有意義的字符,變?yōu)橛幸饬x
        \r \n  --- 換行符
        \t     --- 指表符(tab)

        03. 取消別名功能
        [root@oldboyedu ~]# echo -e "oldboy01\noldboy02" >oldboy.txt
        [root@oldboyedu ~]# cat oldboy.txt 
        oldboy01
        oldboy02
  • ^$ --- 空行信息

grep -v "^$" /etc/selinux/config

  • . --- 匹配任意一個且只有一個字符
        grep "^." /etc/selinux/config    --- 匹配任意一個以什么開頭的字符
        grep ".$" /etc/selinux/config    --- 匹配任意一個以什么結(jié)尾的字符
        grep "." /etc/selinux/config     --- 匹配整個文件所有任意字符
        總結(jié)匹配篩選文件信息:
        01. 會按照行進行匹配
        02. 會匹配信息貪婪特性
        03. 利用grep -o可以查看匹配信息的過程

(星號)* --- 匹配前一個字符連續(xù)出現(xiàn)0次或者多次

創(chuàng)建一個測試文件:
        創(chuàng)建測試文件:
        I am oldboy teacher!
        I teach linux.
        
        I like badminton ball ,billiard ball and chinese chess!
        my blog is http://oldboy.blog.51cto.com
        our site is http://www.etiantian.org
        my qq num is 49000448.
        
        not 4900000448.
        my god ,i am not oldbey,but OLDBOY!
                       

用*匹配文件中數(shù)字0信息


image.png

.* --- 匹配文件中所有信息


image.png

[] --- 匹配中括號中任意一個字符


image.png

過濾出所有小寫字母

        grep "[a-z]" oldboy.txt     --- 過濾小寫字母
        grep "[A-Z]" oldboy.txt     --- 過濾大寫字母
        grep "[a-zA-Z]" oldboy.txt  --- 過濾所有字母
        grep "[a-Z]" oldboy.txt     --- 過濾所有字母 
        grep -i "[a-z]" oldboy.txt  --- grep忽略大小寫進行過濾

[^] --- 將指定字符信息,進行取反過濾

image.png

系統(tǒng)擴展正則 (高級符號)

grep --> egrep/grep -E
sed --> sed -r

星* --- 匹配前一個字符連續(xù)出現(xiàn)0次或者多次


image.png
  • --- 匹配前一個字符連續(xù)出現(xiàn)1次或者多次


    image.png
  • | --- 匹配多個字符串信息
    匹配oldboy和oldbey單詞信息


    image.png

    image.png

    image.png
  • 企業(yè)應(yīng)用:配置文件有注釋有空行, 如何進行取消
    grep -vE "^$|^#" /etc/services

  • () --- 將多個字符信息進行整合過濾 難點
    實現(xiàn)后項引用前項進行替換 常用

第一個作用實踐說明


image.png

第二個作用: 配合sed命令使用時,可以實現(xiàn)后項引用前項


image.png
  • 解鎖: 批量創(chuàng)建用戶 (密碼是隨機密碼)
    seq -w 10|sed -r 's#(.*)#useradd oldboy\1;echo 123456|passwd --stdin oldboy\1#g'|bash
    image.png
  • {} 匹配前一個字符連續(xù)出現(xiàn)指定的次數(shù)

{n,m} --- 匹配前一個字符連續(xù)出現(xiàn)至少n次 最多m次

image.png

{n} --- 匹配前一個字符連續(xù)出現(xiàn)正好n次


image.png

{n,} --- 匹配前一個字符連續(xù)出現(xiàn)最少n次, 最多不限


image.png

{,m} --- 匹配前一個字符連續(xù)出現(xiàn)最少0次, 最多是m次


image.png

? --- 匹配前一個字符連續(xù)出現(xiàn)0次或者1次
總結(jié): * + {} ?

* ---例子:匹配前一個字符連續(xù)出現(xiàn)0次或者多次

image.png

+ ---例子:匹配前一個字符連續(xù)出現(xiàn)1次或者多次

image.png

{} ---例子:匹配前一個字符連續(xù)出現(xiàn)指定的次數(shù)

image.png

? ---例子:匹配前一個字符連續(xù)出現(xiàn)0次或者1次

image.png

總結(jié):

通配符號: 匹配文件名稱信息
正則符號: 匹配文件內(nèi)容信息
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砂客,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子应役,更是在濱河造成了極大的恐慌塞祈,老刑警劉巖辖试,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惫企,居然都是意外死亡撕瞧,警方通過查閱死者的電腦和手機陵叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丛版,“玉大人巩掺,你說我怎么就攤上這事∫称瑁” “怎么了胖替?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豫缨。 經(jīng)常有香客問我独令,道長,這世上最難降的妖魔是什么好芭? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任燃箭,我火速辦了婚禮,結(jié)果婚禮上舍败,老公的妹妹穿的比我還像新娘招狸。我一直安慰自己,他們只是感情好邻薯,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布瓢颅。 她就那樣靜靜地躺著,像睡著了一般弛说。 火紅的嫁衣襯著肌膚如雪挽懦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天木人,我揣著相機與錄音信柿,去河邊找鬼。 笑死醒第,一個胖子當著我的面吹牛渔嚷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稠曼,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼形病,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了霞幅?” 一聲冷哼從身側(cè)響起漠吻,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎司恳,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扔傅,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡烫饼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年杠纵,在試婚紗的時候發(fā)現(xiàn)自己被綠了钩骇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡韩容,死狀恐怖群凶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情请梢,我是刑警寧澤力穗,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站够坐,受9級特大地震影響崖面,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庶香,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一简识、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奢赂,春花似錦、人聲如沸呈驶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拆吆。三九已至,卻和暖如春霉晕,著一層夾襖步出監(jiān)牢的瞬間捞奕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工伟葫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留院促,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓渐溶,卻偏偏與公主長得像弄抬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掂恕,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 系統(tǒng)通配符號 系統(tǒng)正則符號 1.系統(tǒng)通配符號* ---匹配所有內(nèi)容 { } --- 匹配序列信息數(shù)字序列: 字...
    謎糊生閱讀 435評論 1 0
  • 01. 系統(tǒng)中的符號信息 01 系統(tǒng)特殊符號 02 系統(tǒng)通配符號 03 系統(tǒng)正則符號 說明: 查詢...
    白狐臉兒閱讀 1,415評論 0 1
  • 正則表達式到底是什么東西慕蔚?字符是計算機軟件處理文字時最基本的單位送爸,可能是字母,數(shù)字,標點符號甩卓,空格,換行符逾柿,漢字等...
    獅子挽歌閱讀 2,136評論 0 9
  • 我們后來才明白長大的意義宅此,在于你可以試著理解原來不理解的事兒父腕,嘗試原諒你以前從不曾接受的人,在難過和委屈面前還依舊...
    黃飛鴻528閱讀 179評論 0 0
  • 好些朋友問我現(xiàn)在住的村子是個什么情況,整理成文以作回復(fù)躬络,也方便大家對龍?zhí)?四坪有直觀的了解搭儒。 總的來說,龍?zhí)端钠阂?..
    Pingzi就是瓶子閱讀 16,662評論 0 3