grep,sed命令

     文本編輯種類:
     行編輯器:sed
     全屏編輯器 :nano,vi
     
     vim :vi Mproved
     模式化的編輯器:
          編輯模式,也叫命令模式
          輸入模式,插入模式
          末行模式:
                      內置行的命令行接口;
                     
    文件打開:如果打開文件時沒有,vim會自動創建文件。
    vim 文件名     vim [options] [file ..]
    打開文件后,最下一行信息為:
    文件名字         總行數 總字符數        光標所在行 ,第幾個字符     內容百分比
    "functions"    787L, 18586C                           47,7                           2%

    兩個大寫:ZZ 保存并關閉
    vim  +#   文件:打開文件后,直接讓關閉處于低#行的行首    
    vim  +/pattern 文件  :打開文件后,直接讓光標處于第一個pattern匹配到的行的行首。
    vim  + 文件  :直接將光標定位到行尾第一個字符
   
   
   
    模式轉換:
          編輯模式:默認模式
              編輯模式–>輸入模式
              i   :在光標所在處輸入
              I    :  在光標所在行首輸入
              a   : 在光標所在處后方輸入
              A :在光標所在行末尾輸入
              o  :光標所在處下方打開一個新行
              O :光標所在處上方打開一個新行
   
              輸入模式–>編輯模式
              按ESC鍵
             
              編輯模式–>末行模式
              輸入:
     
               
              末行模式–>編輯模式
              按2次ESC鍵
   
               關閉文件
                在編輯模式下輸入:  ZZ  表示保存并退出:
                :q  退出    
                :q!  強制退出,不保存此前的編輯操作
                :wq  保存并退出
                :x     保存并退出
                :w   /位置/文件名    將文件保存在某位置,并命名
               
                光標跳轉:
                字符間跳轉
                h  光標向左跳轉一個字符
                l   光標向右跳轉一個字符
                j   光標向下跳轉1行
                k  光標向上跳轉1行
                #h  光標向前跳#個字符
                #l   光標向后跳#個字符
                #j  光標向下跳#個行
                #k  光標向上跳#個行
               
                單詞間跳轉
                w : 下一單詞的詞首
                b:當前或前一個單詞的詞首
                e:當前或后一個單詞的詞尾
                #w  向后跳#個單詞,詞首
                #b  向前跳#個單詞,詞首
                #e  向后跳#個單詞,次尾
               
                行首跳轉
                ^  :  跳轉至行首的第一個非空白字符
                0   :跳轉至行首,絕對第1一個字符位置
                $   :跳轉至行尾
               
               
                行間跳轉
                G     跳到行尾,第一個字符
                #G   跳轉到#數行首         1G  跳轉到文件第一個行第一個字符
               
               
               
                句間跳轉
                )   跳轉至下一句
               
                (      跳轉至上一句
               
               
                段間跳轉
                }      跳轉至下一段
                {      跳轉至上一段
               
               
               
                翻屏操作
                ctrl + f   向文件尾部翻一屏
                ctrl  +b  向文件首部翻一屏
                ctrl  +d  向文件尾部翻半屏
                ctrl  +u 向文件首部翻半屏
                回車鍵   向文件尾部翻一行
               
                vim編輯命令
                字符編輯
                x  刪除光標所在處字符
                #x  刪除光標所在處起始后#個字符
                xp  將光標所在位置處字符前后互換
               
                替換命令replace
                 r 字符(任何字符)     :替換光標所在處的字符
                                     
                刪除命令
                d   刪除命令,可結合光標跳轉字符,實現范圍刪除
                     d$    刪除光標所在處至行尾的內容
                     d^   刪除光標所在處至行首的內容
                #dw  向后刪除#個單詞,詞首
                #db  向前刪除#個單詞,詞首
                #de  向后刪除#個單詞,次尾
                      dd  刪除光標所在行     刪除一次后,向繼續刪下面內容,可以用.號繼續刪
                      #dd 刪除光標所處的行起始的共n行     刪除內容保存在緩沖區,可以粘貼
                :1,10  d 加回車鍵       刪除1,10行
               
                粘貼命令
                    p  :緩沖區的內容如果為整行,則粘貼在當前光標所在行的下方,否則,粘貼至當前光標所在處后方:
                    P 大  :緩沖區的內容如果為整行,則粘貼在當前光標所在行的上方,否則,粘貼至當前光標所在處前方
                                   
                 復制命令yank    
                    y:  復制,工作行為相似于d命令
                    y$    復制光標至行尾內容
                    y^    復制光標至行首內容
                    y0     復制光標至行首內容
                   
                    ye
                    yw
                    yb
                   
                    yy  復制以整行
                        #yy   復制#號行       ,內容在緩存區,可以通過p進行粘貼    
                       
               
            改變命令(change   c)        
                 編輯模式—>輸入模式,實現刪除操作
                 c$   刪除光標至行尾
                 c^  刪除光標至行首
                 c0  刪除光標至行首
                 
                 cb  刪除光標后一個單詞,并開啟詞首插入模式
                 cw  刪除光標前一個單詞,并開啟詞首插入模式
                 ce   刪除光標后一個單詞,并開啟詞尾插入模式
                  #command
                 
                 cc 刪除光標行,并開啟行首插入模式
             
           可視化模式:
             v    按字符選定
             V    按行選定
             結合編輯命令:d,c,y
             
             
             
             撤銷操作 undo
              u        撤銷此前操作
              #u      撤銷#次操作
 
              撤銷此前的撤銷
              ctrl r    重復執行前一個編輯操作
             
              vim自帶的練習教程:
              [root@localhost testdir]# vimtutor

             
            vim末行模式:內鍵的命令行接口

 
 
   vim末行模式:
內鍵的命令接口:
 (1)地址定界
       startpost,endpost  起始位置,末尾位置
           .    表示當前行
           m: 特定的第m行
           $  :  最后一行             .,$-1  從當前行到倒數第二行
           %    全文
           m,n  指定m-n行
           m,+n   起始行m處,在加n行,右側為相對左側行號的偏移量:
           例如:3,7   :從3第三行處開始數7行,也就是3-8行
           
           /pattern/   從光標所在處起始向維基尾部第一模式所匹配到的行        
                  /first/,$ d   從光標所在處起始向維基尾部第一模式所匹配到的行    
                 
           /pattern1/,/pattern2/    從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結束間的行
           
           可以編輯命令一同使用,實現編輯操作
            d
            y
            c
            w /path/to/somewhere  :將范圍內的文本保存至指定位置。
            #r  /path/to/somewhere 將指定的文件中的文本讀取并插入至指定位置
           
        查找:
        /pattern 從當前光標所在處向文件尾部查找能被匹配到的所有字符
        ?pattern 從光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串
        n :下一個,與命令方向相同
        N :  上一個,與命令方向相反
       
       
        (3)查找并替換
         s:末行模式命令:
         s/要查找的內容/替換為的內容/修飾符
              要查找的內容:可以使用正則表達式
              替換為的內容:不能使用正則表達式,但是可以引用:\1
                               如果'要查找的內容",部分在模式中使用分組符號,在‘替換為的內容’中使用后向引用
                               直接引用查找匹配到的文本
            修飾符:
            I:忽略大小寫      1,40   s/this/THIS/Ig  
            g:全局替換,意味著一行中如果匹配到多次,則都替換:
            \ :轉義字符
            將文件中/cgroup/systemd/替換成/etc/sysconfig/
            %s/\/cgroup\/systemd/\/etc\/sysconig/g
            可將分隔符替換成其他非常用字符
            s@@@         %s@\<t\([[:alpha:]]\+\)\>@T\1@g     將文本中所有t開頭的詞,全部替換為T開頭的詞
            s###              %s#\<t[[:alpha:]]\+\>#&er#g      將文本中所有t開頭的詞,詞后都加上er,重點:&替換單詞

           
            練習:    
            1.復制/etc/grb2.cg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub1.cfg文件中以空白字符開頭的行的行首空白字符
               %s@^[[:space:]]\+@@   答案不符合:
             2.復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件的每個以空白字符
    開頭的行首加上#號
                %s@^$@#    或者 %s/^$/#        %s@^[[:space:]]\+@#

             3.為/tmp/grub2.cfg文件的前三行加#號
                   1,3 s/^/#
             4.將/etc/yumrepos.d/CentOs-Base.repo文件中所有的enabled=0替換為enabled=1
                   % s/enabled=0/enabled=1/g
       
     
     
       
        vim的多文件模式:
        vim  file1 file2 file3
        :next    進行至下一個文件
        :prev  上一個文件
        :first     切換至第一個
        :last      切換至最后一個文件
        并且可以跨文件復制
       
        退出所有文件:wq保存所有文件,并退出
        退出單個文件用q
       
        多窗口:         vim
        -o:水平分割窗口
        -O :  垂直分割窗口
        ctrl+w  后,用上下做右,回落至hjkl鍵可以進行,窗口切換  
        ctrl +w +s,可對文件進行水平二次分割
        ctrl +w +v,可對文件進行垂直二次分割
        q鍵退出一個窗口
        qall退出所有
        wqall保存,并退出所有文件
        注意單個文件也可以分割為多個窗口進行查看
       
        定制vim的工作特性
        永遠有效:
             全局:/etc/vimrc
             用戶個人:~/.vimrc          不一定存在,需要用戶自己創建  
             個人vimrc設置:
              vim  .vimrc , 在.vimrc里寫入set nu,即完成設置行號設置。
         
         1.行號
             顯示行號:set number ,簡寫為set nu
             不顯示行號:set nonumber,簡寫文 set nonu
         注意:在末行模式設置只對當前有效
         
         2.括號匹配高亮顯示
            匹配 :set showmatch ,set sm        設置高亮
            取消 :set noshowmatch,set nsm  取消高亮
         
         3.自動縮進功能
            set ai        設置縮進
            set noai   取消設置縮進
           
          4.搜索高亮
            set  hlsearch      :設置高亮搜索
            set nohlsearch  :設置取消高亮搜索
         
          5.語法高亮
            syntax on 開啟語法
            syntax off 關閉
           
          6.忽略字符大小寫
            set lc  啟用忽略
            set nolc 取消大小寫
           
           
         vim內容內
          :help set  能查看用戶幫助  
              help  subject           :q!   退出

 
 
   sed命令
file://C:\Users\tom\AppData\Local\Temp\ct_tmp/1.png
sed  options  file
-n 不輸出模式空間的內容至終端
-e 可以指定多個命令的編輯
-r  支持使用擴展正則表達式
-i  直接編輯元文件 ,有危險可以用 -i.bak(sed -i.bak "/^#//"  /etc/fstab )命令先保存一份文件在編輯。

地址定界:
(1)空地址:不給地址,對全文進行處理
(2)單地址:
    #:指定第#行
    /pattern/:被沒收所匹配到的每一行
(3)地址范圍:
 m,n : m行至n行
 m,m+5   :m行至m+5行
 m,/part1/  :從m行到模式匹配到的第一行
 /part1/,/part2/  重模式匹配到的第一行至模式匹配到的第二行
 
 (4)步進:
    1~2:基數行
    2~2:偶數行
   
   
sed選項
-d :刪除模式空間中的內容  : sed "/^$/d" /etc/fstab
-p :打印匹配到的行               sed "3p" /etc/fstab
-a  \文本:在匹配行后下一行,追加文本,支持使用\n實現多行追加  "3a \xiong\nxiong\n" fstab
-i   \文本:在匹配的前一行,行首追加文本,支持使用\n實現多行追加.
-c  \文本:  將匹配的行替換成其他信息。sed "2c \xiong" fstab拍
-w 位置+文件 :將匹配的內容保存至某個文本:    sed "/^U/w  /root/sedResult" fstab
-r   文件 :  將文本內容讀入匹配行后      sed '3r /etc/issue' fstab
=:匹配的行前加行號:   sed "/^UUID/=" /etc/fstab
!  :匹配的到模式取反,放在命令之前        sed '/^#/!d' fstab

rev命令 將內容反向顯示    echo "/etc/rc.d/init.d/functions" | rev

s///查找替換,其分隔符可以咨詢指定,常用的有s@@@,s###等   ,一定要寫全///這個符號

   替換標記:
             g:全局替換
             w /path/to/somefile:將替換成功的結果保存至指定文件中
             p:顯示替換成功的行
             & :代表替換原文內容    sed -i “s/root/&man/g” /etc/passwd    

高級編輯命令:
        h:將模式空間中內容覆蓋至保存空間中內容  
        H:將模式空間中的內容追加至保存空間內容
        g:將保存空間中內容覆蓋至模式空間中內容
        G:將保存中間中內容追加至模式空間中內容
        x:將模式空間中內容與保存空間中內容互換
        n:讀取匹配的下一行覆蓋至模式空間中
        N:讀取匹配的下一行追加至模式空間中
        d:刪除模式空間中的行
        D:刪除多行模式空間的所有行
        ;  命令行間用;隔開

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

(0)
maoxiongmaoxiong
上一篇 2016-08-12
下一篇 2016-08-12

相關推薦

  • vim用法小結

    vim使用: 使用vi和vim的三種主要模式 : 命令模式,插入模式,擴展模式    擴展模式: w:寫入磁盤文件 wq:寫入并退出 x:寫入并退出 q:退出 q!不存盤退出,即使更改都將丟失 r filename:讀文件內容到當前文件中 w filenane: 將當前文件內容寫入到另一個…

    Linux干貨 2016-08-12
  • Linux三劍客之sed

     Sed簡介       sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處 理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有 改變,除非你使用重定向存…

    Linux干貨 2016-08-12
  • N26_第一周作業

    一、描述計算機的組成及其功能。 計算機系統:是由硬件(Hardware)系統和軟件(Software)系統兩大部分構成。 1、硬件系統: 1)控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。2)運算器(Datapath):運算器的功能是…

    2017-02-20
  • 第一周作業

    一、計算機的組成及功能 計算機是由硬件和軟件組成, 1、硬件主要分為五個部分: 1) 控制器(Control)  CPU 2) 運算器(Datapath)   3) 存儲器(Memory)  內存 4) 輸入(Input system)  鍵盤、鼠標 5) 輸出(Out…

    Linux干貨 2017-07-11
  • N25 第一周作業 2016/12/5

       1.描述計算機的組成及其功能         計算機組成由:CPU 內存 IO設備           功能:                cpu就是中…

    Linux干貨 2016-12-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-12 09:36

    文章都是一些理論的東西建議加上自己的實際操作,理論加上實踐,讓自己的文章更加豐滿起來哦。

欧美性久久久久