正則表達式之一grep

grep :文本過濾( 模式:pattern) 工具

包括:grep, egrep, fgrep (不 支持正則表達式 搜索)

用法格式: grep [OPTIONS] PATTERN [FILE…]

                    模式:由正則表達式字符及文本字符所編寫的過濾條件

 各種選項:  –color=auto :     顯示匹配的文本著色,centos7已經自動匹配紅色

                   -b              :     顯示不被模式匹配的行

                   -i     :忽略字符大小寫                -n   :  顯示匹配的行號                  -v :     統計匹配到的行數

                   -o    :僅顯示匹配到的字串           -q  :靜默模式,不輸出任何信息  

                    -A #   -B #    -C #     :  顯示模式匹配到的前后行數,after、before、context前后各#行

                    -e   :  實現多個選項間的邏輯or關系   grep –e ‘cat ’ -e ‘dog’ file

                    -E   : 擴展正則表達式                          -w   : 整行匹配整個單詞

                    -F   :fgrep,不支持正則表達式

             grep使用通配符,有些符號需要轉義,擴展正則表達式則不需要,兩者其他功能一樣

擴展正則表達式:egrep     支持元字符、通配符等,和文件名通配稍微有點區別:使用egrep,轉義符\不需要

               .     匹配任意單個字符                          []     匹配指定范圍內的任意單個字符

               *    匹配 前面的字符任意次,包括0次     貪婪模式:盡可能長的匹配
                \?  匹配 其前面的字符0 或1次                        \+  匹配 其前面的字符至少1次

                \{m,n\}  匹配 前面的字符至少m 次,至多n次

位置錨定:

         ^$  :   ^行首錨定,$行尾錨定。合在一起就是空行的意思                    ^[[:space:]]*$ 空白行

          \b  詞首錨定,用于單詞模式的左側 ; 詞尾錨定;用于單詞模式的右側

            \<PATTERN\>   匹配整個單詞

     分組后向引用有點難理解:分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為: \1, \2, \3, …
              exam:  egrep  (string1)(string2)\1\2      \1表示引用第一個字符串,\2表示引用第二個字符串

              如果使用grep ,括號需要轉義\(\);

              或者的邏輯關系:  a|b: a或b           C|cat: C 或cat                 (C|c)at:Cat 或cat

vim編輯器基本認識: 

                vim  [OPTION]… FILE…                如果該文件存在,文件被打開并顯示內容

                                                                 如果該文件不存在,當編輯后第一次存盤時創建它

                參數使用了解即可,接觸不到幾個。


三種主要模式: 命令模式、輸入模式、末行模式          Esc鍵 退出當前模式總是返回到命令模式

                                   

正則表達式之一grep

命令模式轉換插入模式:

                  i     : insert,  在光標所在處輸入        

                  a    : append,  在光標所在處后面輸入 

                  o    :  在當前光標所在行的下方打開一個新行   

                大寫I,A,O,表示在光標行首輸入、光標行尾輸入、所在行上分打開新行

注意:插入模式和末行模式是不能直接轉換,需要通過命令模式中轉, 

            支持鎖定和解鎖,和鎖定linux一樣, 只是不顯示而已,實際還能輸入

            :q  退出             :q!  強制退出,丟棄做出的修改

            :wq   保存退出        :wq!   強制保存退出         建議使用這些退出方式,其他退出方式操作快,危險

在末行模式下:

            r filename      讀文件內容到當前文件中

            w filename 將當前文件內容寫入另一個文件

            !command  執行命令

            r!command  讀入命令的輸出

命令模式的光標跳轉:

            H :頁首 M行 :頁中間行 L: 頁底

             h: 左 左 l: 右 右 j: 下 下 k: 上    (習慣使用方向鍵也行)  還可以單詞跳轉:w、e、 b

             ^:  跳轉至行首的第一個非空白字符           $:  跳轉至行尾               0:   跳轉至行首

             G :最后一行     #G :跳轉指定#行                     gg: 第一行

             Ctrl+f    向尾部翻一屏        Ctrl+b      向首部翻一屏      

             dd :  刪除光標所在行          yy:復制光標所在行         p,P:  粘貼復制的整行,也可以粘貼刪除的字符

             ~ : 大小寫替換

            還有查找替換功能:s/string/string2/g              g:  全局替換         查找替換中的分隔符/ 可替換為其它字符

u 撤銷最近的更改             按Ctrl – r 重做最后的“撤消”更改

這些就是些基本用法,vim功能很強大,還有很多強大的功能,太多了,我們先了解使用即可。

原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/70198

(0)
sheweishewei
上一篇 2017-02-27
下一篇 2017-02-28

相關推薦

  • keepalive配置文件詳解

    第一部分:全局定義塊 1、email通知。作用:有故障,發郵件報警。 2、Lvs負載均衡器標識(lvs_id)。在一個網絡內,它應該是唯一的。 3、花括號“{}”。用來分隔定義塊,因此必須成對出現。如果寫漏了,keepalived運行時,不會得到預期的結果。由于定義塊內存在嵌套關系,因此很容易遺漏結尾處的花括號,這點要特別注意。 global_defs{ n…

    2017-09-17
  • 來馬哥教育后

    來北京三天了,說實話,我長了不少見識,甚至可以說是見過了以前一些從沒想到過的事情,我拼了命往大城市來,如今如我所愿了,我來的時候發誓對自己說:我要留在北京,我也要積累足夠的資本讓自己真正成為大城市的上層社會人士,現在吃多少苦我都無所謂。 我以前在建筑工地的時候想:我將來能學IT是最幸福的事了。當時真是這么想的,等我真到馬哥教育,我發現,我把問題想的太簡單,就…

    Linux干貨 2018-03-26
  • Http請求流程

    1、http請求流程 1.連接 當我們輸入這樣一個請求時,首先要建立一個socket連接,因為socket是通過ip和端口建立的,所以之前還有一個DNS解析過程,把www.mycompany.com變成ip,如果url里不包含端口號,則會使用該協議的默認端口號。 DNS的過程是這樣的:首先我們知道我們本地的機器上在配置網絡時都會填寫DNS,這樣本機就會把這個…

    Linux干貨 2017-02-13
  • 作業——2016-10-17

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。     將系統時間同步到硬件時間的命令是hwclock -s 2 生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在管理工具退出的情況下,腳本依然能正常運行。     screen -S work  進去后開始做工作,暫時離開時…

    Linux干貨 2016-10-18
  • 26期全程班-第四周博客作業

      1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。  # cp -R /etc/skel /home/tuser1 # chmod -R go-rwx /home/tuser1/ 2、編輯/etc/group文件,添加組hadoop。 # echo &…

    Linux干貨 2017-02-27
  • N26-第六周

    請詳細總結vim編輯器的使用 vim 模式化的編輯器 vim的三種模式:1.編輯模式(命令模式)                          2.輸入模式          …

    Linux干貨 2017-03-13
欧美性久久久久