sed工具 vim編輯器

sed工具:

   用法

          sed [option]… 'script' inputfile…

     常用選項:

           -n:不輸出模式空間內容的自動打印,只輸出處理行的結果

           -e: 多點編輯

           -f :  / PATH/TO/SCRIPT_FILE : 從指定文件中讀取編輯腳本

           -r: 支持使用擴展正則表達式

           -i: 原處編輯,可以直接修改文件 ; -i.bak:備份文件再修改,安全

      script:    ' 地址,命令'

地址界定:

 *如果沒有明確表明地址,則對全文進行處理

 *單地址

               #:指定的行    /pattern/被此模式所能匹配到的每一行進行處理

*地址范圍:

              #,#:表示第#行到第#行

              #,+#:表示第#行,和之后的#行

              /pat1/,/pat2/:從匹配到的/pat1/行開始,到/pat2/的行 之間的行               #,/pat1/:從第#行開始,到匹配到/pat1/的行 之間的行

     * ~:步進

               1~2:奇數行

               2~2:偶數行

編輯命令:

   d:刪除模式空間匹配的行

blob.png

    p:顯示模式空間中的內容

blob.png

顯示第三行, -n表示不顯示默認輸出的結果,只顯示第3行的匹配結果

a \text:在行后面追加文本;支持使用\n 實現多行追加

blob.png

i \text:在行前面插入文本;支持使用\n 實現多行插入

blob.png

c \text:替換行為單行或多行文本

blob.png

w /path/to/somefile: 保存模式匹配的行至指定文件

r /path/from/somefile:讀取指定文件的文本至模式空間中匹配到的行后

=: 為模式空間中的行打印行號

!:模式空間中匹配結果取反處理

blob.png

如果不加?。篺2文件中1到3行加上行號  加上!結果取反,1到3行不加,其他行加

        s/// :查找替換, 支持使用其它分隔符,s@@@ ,s###

        替換標記:

                   g: 行內全局替換

                   p: 顯示替換成功的行

                   w /PATH/TO/SOMEFILE :將替換成功的行保存至文件中

blob.png

這里沒有加g,所以是匹配到的有good的行的第一個字符進行替換,加上g的話,就是行內所有的匹配到的字符全部替換:

blob.png

[root@localhost ~]# cat f1
good good good
goodgood
goood
[root@localhost ~]# sed "s/good/god/" f1
god good good
godgood
goood
[root@localhost ~]# sed -n "s/good/god/gp" f1
god god god
godgod

只顯示替換成功的行



blob.png

&符號表示前面的搜索結果,比如在這里就表示的是,把root替換成rootsuperman

&也可以放在后面:/root/superman&/表示把root替換成supermanroot

保持空間: 可暫時存放數據的空間

高級編輯命令

       h: 把模式空間中的內容覆蓋至保持空間中

       H:把模式空間中的內容追加至保持空間中

       g: 從保持空間取出數據覆蓋至模式空間

       G:從保持空間取出內容追加至模式空間

       x: 把模式空間中的內容與保持空間中的內容進行互換

       n: 讀取匹配到的行的下一行 覆蓋 至模式空間

       N:追加匹配到的行的下一行至模式空間

       d: 刪除模式空間中的行

       D:刪除當前模式空間開端至\n的內容(不在傳至標準輸出),放棄之后的命令,但是對剩余模式空間重新執行sed

vi文本編輯器

簡介:

          vi:Visual Interface,文本編輯器

 文本編輯種類:

                     行編輯器:sed

                     全屏編輯器:nano,vi

                     vim – Vi Improved是vi的加強版

其他編輯器:

                    gedit 一個簡單的圖形編輯器

                    gvim  一個vim編輯器的圖形版本

打開文件

命令格式vim [OPTION]… FILE…

        +#: 打開文件后,直接讓光標處于第# 行的行首

vi +2 f2

        +/ PATTERN :打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首

vi +/UUID f2

         vim + file 直接打開file, 光標在最后一行

 vi + f2

         vim –b file 二進制方式打開文件

         vim –d file1 file2… 比較多個文件

vi -d f1 f11

         vim -m file 只讀打開文件

         ex file 或 或 vim –e 直接進入ex模式    如果該文件存在,文件被打開并顯示內容;如果該文件不存在,當編輯后第一次存盤時創建它

vim的三種主要模式

           命令模式(默認):移動光標,剪切、粘貼文本 ,用來查看文件

           插入(編輯)模式:修改文本

           擴展命令模式:保存,退出等

  Esc鍵:退出當前模式    Esc鍵 Esc鍵 總是返回到命令模式

由命令模式–>插入模式

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

      I:在當前光標所在行的行首輸入

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

       A:在當前光標所在行的行尾輸入

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

       O:在當前光標所在行的上方打開一個新行

模式之間的轉換

    插入模式 —-> 命令模式     按ESC鍵

       命令模式 —-> 擴展模式      直接輸入:   :wq存盤退出;    :q沒改文件的情況下退出;    :q!更改文件的情況下強行退出,但不保存文件;    :x存盤退出=:wq

       擴展模式 —-> 命令模式      按ESC鍵

       鎖定和解鎖:CTRL+s,Ctrl+q

關閉文件

     擴展模式:   輸入 :wq存盤退出;    :q沒改文件的情況下退出;    :q!更改文件的情況下強行退出,但不保存文件;    :x存盤退出=:wq

     命令模式:   ZZ:保存退出       ZQ:不保存退出

擴展模式

         按“:” 創建一個命令提示符:,處于底部的屏幕左側,進入Ex模式

         命令:

            w寫(存)磁盤文件,可以臨時保存,亦可以保存在別的文件

(w  filename)  然后繼續編寫

            wq寫入并推出=x

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

            w filename 將當前文件內容寫入另一個文件,臨時保存

            :!command,可以執行命令,執行完,回車鍵返回文件編輯

           :r!command  直接讀取命令執行結果

命令模式的光標跳轉

     字符間跳轉

          h:左   l:右   j:下   k:上

#COMMAND :跳轉由#指定的個數的字符;例如:10h–向左跳轉10個字符

單詞間跳轉:

          w:下一個單詞的詞首

          e:當前或下一單詞的詞尾

          b:當前或前一個單詞的詞首

          #COMMAND:由#指定一次跳轉的單詞數

當前頁跳轉:

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

行首行尾跳轉:

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

        0: 跳轉至行首

        $: 跳轉至行尾

行間移動:

        #G(輸入行數+G進行跳轉)、擴展模式:#  跳轉至由#指定行

         G:最后一行   1G, gg: 第一行

句間移動

         ):下一句 (:上一句   默認以.結束是一句話

段落間移動:

         }: 下一段 {:上一段

命令模式翻屏操作:

     Ctrl+f: 向文件尾部翻一屏

        Ctrl+b: 向文件首部翻一屏

        Ctrl+d: 向文件尾部翻半屏

        Ctrl+u:向文件首部翻半屏

命令模式操作

      字符編輯:

            x:直接刪除光標處的字符;

            #x:刪除從光標出開始的#個字符

            xp:交換光標所在處的字符及其后面字符的位 是x,p的組合,

x是剪切,p粘貼

            ~:轉換大小寫

       替換命令(r,replace)

             r:替換光標所在處的字符,只能一個

             R:切換成REPLACE模式,輸入任意字符替代光標處字符,一直替換,按esc鍵退出REPLACE模式

       刪除命令:

          d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;

          d$: 刪除到行尾

          d^: 刪除 到非空行首

          d0: 刪除到行首

          dw:從光標處刪除到光標所在單詞詞尾

          de:從光標處刪除到所在單詞詞尾

          db:從光標處刪除到光標所在單詞詞首

          dd: 刪除光標所在的行

          #dd :多行刪除

          D:從當前光標位置一直 刪除到行尾,留空行,等同于d$

 復制命令(y, yank):想要粘貼  把光標跳轉至指定位置,按p,在光標之后粘貼,按P,在光標之前粘貼粘貼命令(p, paste):

p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面

P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面

        y:復制,行為相似于d命令

        y$:從光標處到行尾復制

        y0:從光標處到行首復制

        y^:從光標處到行首非空字符復制

        ye:從光標處到單詞詞尾復制

        yw:從光標處到單詞詞尾復制

        yb:從光標處到單詞詞首復制

        yy:復制行

            #yy:復制多行

        Y:復制整行

   命令模式 –> 插入模式 c:修改后切換成插入模式

             c$:刪除從光標處到行尾的字符,然后自動切換至插入模式

             c^:刪除從光標處到行首的非空字符,進入插入模式

             c0:刪除從光標處到行首的所有字符,進入插入模式

             cb:刪除從光標處到詞首的字符,進入插入模式

             ce:刪除從光標處到詞尾的字符,進入插入模式

             cw:刪除從光標處到詞尾的字符,進入插入模式

             cc :刪除當前行并輸入新內容

             #cc:從光標之后的#行刪除并輸入新內容

             C:刪除當前光標到行尾,并且換成插入模式

             100iquan[Esc] 粘貼“quan”100次

       Command:

             y復制、d刪除、gU變大寫、gu變小寫

命令將的組合: 0y$:從行首到行尾最后一個字符進行拷貝

                    ye:從當前位置拷貝光標所在單詞的最后一個字符

擴展模式下的地址界定:

                #:從第#開始

#,#: 從第#行到右邊的第#行

            #,+#: 從第#行開始到第#+#行結束   如:2,+3 表示2到5行

             .: 當前行       $: 最后一行   如:.,$-1 當前行到倒數第二行

            %:全文, 相當于1,$

            /pat1/,/pat2/:從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束

             #,/pat/:第#行到第一次被pat匹配到的行

            /pat/,$:從第一次被pat匹配到的行到最后一行

使用方式:后跟一個編輯命令

               d:刪除

y:復制

               w file: 將范圍內的行另存至指定文件中

               r file :在指定位置插入指定文件中的所有內容

blob.png

從第一個行首是任意字符的有by的行首到第一個被匹配到的行首是任意字符的有man的行尾進行復制      到指定位置,在命令模式下按p鍵粘貼,如下圖:

blob.png

擴展模式下的查找:

/PATTERN :從當前光標所在處向文件尾部查找查找關鍵詞

blob.png

       ?PATTERN :從當前光標所在處向文件首部查找

        n:與命令同方向跳到下一個關鍵詞

        N:與命令反向跳到下一個關鍵詞

擴展模式模式下的查找并替換:

        s:在擴展模式下完成查找、替換

        格式:s/($、@、#)要查找的內容/替換的內容/修飾符

        其中修飾符有:

                i:忽略大小寫

                g:全局替換;     因為默認模式下,是每行只替換第一個

                gc:全局替換,每次替換前詢問

微信截圖_20160811153402.png

命令的意思:全文搜索/sbin/nologin,并用/bin/bash進行全局替換

blob.png

替換完成 

命令模式 :撤銷修改

          u:撤銷最近的更改

          #u:撤銷之前的#次更改

          U:撤消光標落在這行后所有此行的更改

          :按Ctrl -r重做最后的“撤消”更改

          .:重復前一個操作

          n.:重復起一個操作n

vim寄存器  只能一個人用

用a ,b,…,z 表示, 用“寄存器表示,放在數字和命令之間

如:3"tyy 表示復制3行到t寄存器中  執行完3“tyy后文件下方會出現:3 lines yanked 字樣,表示已經復制到t寄存器中完畢 

"tp 表示將t寄存器內容粘貼  把光標移動到指定位置,執行“tp即可粘貼剛才復制的t寄存器中的內容

如果未指定寄存器名字,將使用無命名寄存器

有10 個數字寄存器,用0 ,1 ,… ,9 表示,0 存放最近復制內容,1 存放最近刪除內容。當新的文本變更和刪除時,1 轉存到2 ,2 轉存到3 ,以此類推。數字寄存器不能在不同會話間共享。

可視化模式

允許選擇的文本塊:

           v面向字符

           V面向行

           ctrl-v 面向塊

blob.png

     相當于選中范圍

可視化鍵可用于與移動鍵結合使用:w,),},箭頭等

突出顯示的文字可以被刪除,復制,變更,過濾,搜索、替換

多文件模式

 vim FILE1 FILE2 FILE3 … 同一時間只能看到一個文件

     擴展模式下輸入:

             :next 下一個

             :prev 前一個

             :first 第一個

             :last 最后一個

             :wall 保存所有

             :qall 退出所有

             :wqall 保存并退出所有

使用多個窗口

      多文件分割  vim -o|-O FILE1 FILE2 …

        -o: 水平分割     -O: 垂直分割

        在窗口間切換: Ctrl+w,方向鍵  上下左右跳轉

blob.png

 單文件窗口分割

          Ctrl+w,s:水平分割

          Ctrl+w,v:垂直分割

          ctrl+w,q:取消相鄰窗口

          ctrl+w,o: 取消全部窗口

          : wqall 退出

blob.png

定制vim的工作特性:

        配置文件:永久有效,修改配置文件

        全局:/etc/vimrc

        個人:~/.vimrc

         在擴展模式下定制特性,只對當前進程有效

 行號

              顯示:set number, 簡寫為set nu

              取消顯示:set nonumber, 簡寫為set nonu

           

blob.pngblob.png

 自動縮進

              啟用:set ai

              禁用:set noai

   高亮搜索:

              啟用:set hlsearch

              禁用:set nohlsearch

   語法高亮:

              啟用:syntax on

              禁用:syntax off

忽略字符的大小寫:

              啟用:set ic

              不忽略:set noic

    文件格式

              啟用:set fileformat=unix

              不忽略:set fileformat=dos

    (8) 設置文本寬度  標準長度:一行80字符

            :set textwidth=65 (vim only,vi不支持)距離左邊65個字符換行

            :set wrapmargin=15距離右邊15個字符換行

如果想要了解更多,請在vi中擴展模式下敲help

原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/31915

(0)
舊城以西舊城以西
上一篇 2016-08-12
下一篇 2016-08-12

相關推薦

  • iptables的使用

    iptables         firewall:隔離工具;Packets Filter Firewall;工作于主機或網絡的邊緣,對經由的報文根據預先定義的規則(匹配條件)進行檢測,對于能夠被規則匹配到的報文實行某預定義的處理機制的一條組件; 硬件防火墻:在硬件級別實現部分顧慮功能;另…

    Linux干貨 2016-10-29
  • 【26期】Linux第五周學習小總結

        第五周的學習內容很豐富, 從查找到壓縮打包,到軟件包的管理,其中尤其是以壓縮的內容最為豐富,而且龐大的選項讓人絕望,那我今天就總結了一下壓縮的一些東西,和大家一起分享。     為什么會產生壓縮工具呢?因為我們的現在的很多文件會利用到的東西很多,電腦的讀存速度也越來越快,一些大的文件在傳輸和使用上就會很麻煩,雖…

    2017-08-12
  • System作業

    1、求每班總成績和平均成績 [root@Centos7 bin]# awk '!/^name/{a[$2]++;b[$2]+=$3}END{for(i in a){print i,b[i],b[i]/a[i]}}' f1 4 100 50 5&nbs…

    Linux干貨 2016-09-20
  • Centos下實現多網卡綁定

    實現多網卡綁定在Centos6和Centos7可采用bonding方式,Centos7上team網絡組也可實現,并且功能更強大。 Linux bonding 模塊提供一種將多個網卡聚合成一塊邏輯捆綁網卡的實現方法。 捆綁的網卡擁有多種模式,根據模式的特性,可實現網絡負載均衡,網絡冗余切換,提高網絡吞吐量等功能。 大多流行Linux發行版都已裝載bonding…

    Linux干貨 2016-09-13
  • 圖文演示Netmeeting的三大功能

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/153578     可能很多朋友對Netmeeting有一定認識,但我想真正用過的朋友應該不多,因為類似的軟件太多太多了,所以Netmeet…

    Linux干貨 2015-03-25
  • linux用戶與用戶組詳解

    LINUX用戶與用戶組詳解     1,用戶和用戶組文件   在linux中,用戶帳號,用戶密碼,用戶組信息和用戶組密碼均是存放在不同的配置文件中的。分別是 passed gpassd shadow group 中。   在linux系統中,所創建的用戶帳號和其相關信息(密碼除外)均是存放在/etc…

    Linux干貨 2017-07-22
欧美性久久久久