sed初步認識

 ◆ sed基礎概念
 ◆ sed用法
 一.sed 基礎概念
 Stream EDitor (流/行編輯器)
 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”
(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉換程序等

二.sed用法
 ?功能:轉換和過濾文本;可以一次處理多個文件的多行文本
 ?格式:sed [option]… ‘script’ inputfile…
 ?常用選項:
   -n:不輸出模式空間內容到屏幕,即不自動打印
   -e:多點編輯
   -f:/PATH/SCRIPT_FILE:從指定文件中讀取編輯腳本
   -r:支持使用擴展正則表達式
   -i:直接編輯原文件:危險操作慎用
 ?script:’地址命令‘
 ?地址定界:
    (1)不給地址:對全文進行處理
    (2)單地址:
          #:指定的行
          /pattern/:被此處模式所能夠匹配到的每一行
     (3)地址范圍:
          #,#
          #,+#
          /pat/,/pat2/
          #,/pat1/
      (4)~:步進
            1~2 奇數行
            2~2 偶數行
  ?編輯命令:
      d:刪除模式空間匹配的行
      p: 顯示模式空間中的內容
      a[]text:在指定行后面追加文本
                支持使用\n實現多行追加
      i[]test:在行前面插入文本
      c[]text:替換行為單行或多行文本
      W /path/somefile:保存模式匹配的行至指定文件
      r /path/somefile: 讀取指定文件的文本至模式空間中匹配到的行后
      =:為模式空間中的行打印行號
      !:模式空間中匹配行取反處理,位置如下:
                地址定界!編輯命令;
  ?s///:查找替換,支持使用其它分隔符,s@@@,s###
  ?替換標記:
      g:行內全局替換
      p:顯示替換成功的行
      w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中

  ?示例

      sed -n ‘2p’ f2  :打印文件第二行

      sed初步認識   

     sed -n ‘2,10p’ f2 :打印文件第二行到第十行

    sed初步認識

    sed -n ‘2,+10p’ f2 :打印文件第二行到第十二行

    sed初步認識

    sed -n ‘/root/p’ f2 :打印包含root的行

    sed初步認識

    sed -n ‘/^lp/,/^ft/p’ f1 :打印以lp開頭的行到以ft開頭的行

    sed初步認識

    sed -n ‘1~2p’ f2 :打印奇數行

    sed初步認識

    sed ‘2~2d’ f2 :刪除偶數行(同上圖)

    sed ‘1,10d’ f2

    sed初步認識

    

    ?高級編輯命令:

      h:把模式空間中的內容覆蓋至保持空間中
      H:把模式空間中的內容追加至保持空間中
      g: 從保持空間取出數據覆蓋至模式空間
      G:從保持空間取出內容追加至模式空間
      x:把模式空間中的內容與保持空間中的內容進行互換
      n: 讀取匹配到的行的下一行覆蓋至模式空間
      N:讀取匹配到的行的下一行追加至模式空間
      d:刪除模式空間中的行
      D:刪除當前模式空間開端至\n的內容(不再傳至標準輸出),放棄之后的命令,但是對剩余模式空間重新執行sed
  

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

(0)
xialingfengxialingfeng
上一篇 2017-03-16 16:59
下一篇 2017-03-16 19:57

相關推薦

  • 馬哥教育網絡班21期-第一次課程作業

    計算機組成部分及其作用 1.總線 電子管道,攜帶信息字節并在各個部件間傳輸。分為地址總線,數據總線,控制總線。 CPU最大可尋址范圍:2^N*M,  N為地址總線數量,M為數據總線數量。 2.I/O設備 I/O設備及輸入輸出設備,最常見的輸入設備就是我們非常熟悉的鍵盤,鼠標,我們通過我們通過這些設備向計算機傳達指令,讓計算機完成我們想要它完成的工作…

    Linux干貨 2016-06-29
  • ?文件共享服務之FTP

    文件共享服務之FTP 文件共享服務之FTP 一、什么是文件共享服務 二、FTP 三、響應碼 四、FTP存儲和mysql存儲有什么不同? 五、用戶認證 六、FTP安裝與配置 一、什么是文件共享服務 簡單理解就是文件或存儲塊設備可以共享給大家使用。  1、實現共享服務有三種! (1)ftp:屬于應用層服務,可以跨平臺使用(linux<—&gt…

    Linux干貨 2016-04-18
  • 單引號,雙引號,反引號的作用(首篇)

    哈哈哈!這是我的博客生涯的開始,也是我學習Linux的開始,所以我將勵志成為一名老司機帶你裝X帶你飛。 1.首先是三兄弟中的單引號,它的作用只是單純的呈現出自己所包含的文字并不能執行其中的命令,所以它也是三兄弟中最笨的那個,作用單一,簡單。 2,再來介紹介紹雙引號,他的作用和單引號大同小異,它能包含單引號,反引號,以及除了執行以$和\的字符為首的函數能認識之…

    2017-07-11
  • DNS 的搭建 子域授權及轉發(正向解析)

           dns(名稱解析服務).它的作用就是將主機名解析成ip地址的過程,同時它是一個分布式,分層次的主機名管理架構。為了我們能更好的了解與理解,實驗才是更好的。     安裝部署DNS服務: 一.首先安裝DNS服務器軟件 bind,還有其他相關的軟件包,有bind-libs(庫文件),bin…

    2017-07-31
  • grep與文本處理工具

    grep:基本正則表達式,-E  -F egrep:擴展正則表達式,-G -F fgrep: 不支持正則表達式,-F  egrep:          支持擴展的正則表達式實現類似于grep文本過濾功能; grep -E          …

    Linux干貨 2016-12-23
  • 設計模式 ( 十三 ) 命令模式Command(對象行為型)

    1.概述         在軟件設計中,我們經常需要向某些對象發送請求,但是并不知道請求的接收者是誰,也不知道被請求的操作是哪個,我們只需在程序運行時指定具體的請求接收者即可,此時,可以使用命令模式來進行設計,使得請求發送者與請求接收者消除彼此之間的耦合,讓對象之間的調用關系更加靈活。  例子1:電視機遙控器…

    Linux干貨 2015-07-16
欧美性久久久久