Linux基礎知識之文本處理三劍客sed

處理文本的工具sed

    1.sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”。接著用sed命令處理緩沖區中的內容,完成處理后,把緩沖區中的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉換程序等。

    2.sed工具的使用:

    用法:

    sed [option] …'script' inputfile…

    常用的選項:

    -n:使用安靜模式實處,sed命令不指定-n的時候會自動將數據打印到屏幕上面;使用-n之后只會顯示匹配到的行;

    -e: 多點編輯

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

    -r /PATH/FROM/SOMEFILE: 支持使用擴展正則表達式

    -i: 直接修改讀取的文件內容,而不是由屏幕輸出。

    3.sed命令地址定界:

    地址定界:

        (1)不給地址:對全文進行處理

        (2)單地址:

        #: 指定的行

        /pattern/:被此處模式所能夠匹配到的每一行

        (3)地址范圍:

        #,#:從第#行到第#行

        #,+#:從第#行開始到+#行的范圍

        /pattern1/,/pattern2/:從匹配到的第一個字符開始,到匹配到的第二個字符結束

        #,/pat1/:從第

        (4)~:步進

        1~2  只匹配文件當中的奇數行

        2~2  只匹配文件當中的偶數行

    4.編輯命令:

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

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

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

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

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

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

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

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

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

    5.查找替換:

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

        替換標記:

        g:  行內全局替換

        p:  顯示替換成功的行

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

    6.高級編輯命令:

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

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

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

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

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

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

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

        d: 刪除模式空間中的行

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

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

(0)
sjsirsjsir
上一篇 2016-08-11 09:37
下一篇 2016-08-11 09:37

相關推薦

  • 第十八周博客作業

    1、為LNMP架構添加memcached支持,并完成對緩存效果的測試報告; 操作系統: CentOS 7.210.0.0.51 nginx+php+mysql10.0.0.52 memcached 一. 環境準備: 搭建LNMP編譯安裝環境 1. 配置163的yum源和阿里云的epel源 [root@localhost ~]# mv /etc/yum.rep…

    2017-07-12
  • Linux下的文件管理系統

    一、文件系統的FHS標準     因為Linux的屬于開源系統,開發人員多,為了統一開發標準,Linux有一個文件系統標準,也就是FHS(Filesystem HierarchyStandard)標準。有了這個標準,那些獨立的軟件開發商、系統開發人員以及系統的使用者就能方便的在系統上操作。 二、文件系統  &…

    Linux干貨 2016-08-02
  • 初識varnish

      實驗拓撲 varnish主機    地址192.168.150.137 后端web主機     web1靜態服務192.168.150.138     web2動態服務192.168.150.140 varnish的安裝及開啟 varnish主機: ~]# yum info varni…

    Linux干貨 2017-01-05
  • 分區塊基本知識點及側重點 — 上

        我們需要熟練了解磁盤分區原理。元數據及塊設備對應inode是最重要也是最基本的原理。后面分區很多地方都和inode有關系。    一個磁盤片有63扇區,1024存儲位,256個磁頭,每個扇區只有前512字節是有效存儲單元。所以后面磁盤清零都是跟512這個數字有關。    數據分數據區和元數據…

    Linux干貨 2016-08-24
  • grep、egrep正則表達式之初窺門徑

    何謂正則表達式 正則表達式,又稱正規表示法、常規表示法(Regular Expression,在代碼中常簡寫為regex、regexp或RE),是一類字符所書寫的模式,其中許多字符不表示其字面意義,而是表達控制或通配等功能。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的…

    2015-03-19
  • 網絡管理

    說起網絡,大家都不陌生,因為大家天天上網嘛,連路邊老大爺都會聊微信了,但是我們所了解的網絡只是茫茫網絡大海中的一葉扁舟,網絡的范圍其實有很大,里面涉及的東西也非常多,現在讓小編帶你一點一點去了解它吧,相信大家看了之后,會有不一樣的體會呢! 1、 什么是網絡? 網絡是由節點和連線構成,表示諸多對象及其相互聯系。在數學上,網絡是一種圖,一般認為專指加權圖。網絡除…

    2017-09-02
欧美性久久久久