sed編輯器使用

 簡述

      sed編輯器被稱作流編輯器,和普通的交互式文本編輯器恰好相反。在交互式文本編輯器中(比如vim),

你可以用鍵盤命令來交互式地插入、刪除或替換數據中的文本。流編輯器則會在編輯器處理數據之前基于預先

提供的一組規則來編輯數據流。sed編輯器可以根據命令來處理數據流中的數據,這些命令要么從命令行中輸

入,要么存儲在一個命令文本文件中。sed編輯器會執行下列操作。

  (1) 一次從輸入中讀取一行數據。

  (2) 根據所提供的編輯器命令匹配數據。

  (3) 按照命令修改流中的數據。

  (4) 將新的數據輸出到STDOUT。

  在流編輯器將所有命令與一行數據匹配完畢后,它會讀取下一行數據并重復這個過程。在流編輯器處理完流

中的所有數據行后,它就會終止。

用法格式:

       sed   [option]…   ‘scripts’    inputfile

   常用選項:

           -n  不輸出模式空間內容 到屏幕。-n選項將禁止sed編輯器輸出。但p替換標記會輸出修改過的行。將二者

      配合使用的效果就是只輸出被替換命令修改過的行。

           -e  多點編輯,支持多個參數并行篩選

               兩種寫法,兩種效果

               -e ‘par1;part2’ 僅顯示part2匹配到的行,但是part1匹配到的會做更改

               -e’part1’ –e ‘part2’  part1 part2匹配到的行都會做顯示

                    seq 100 |sed -ne ‘s/1/ffffff/p’ -ne ‘s/9/ppppp/p’

                    seq 100 |sed -ne ‘s/1/fffff/;s/9/pppp/p’

             兩個命令的顯示結果不一樣,第一種是 都顯示

             第二種的話 s/1/fffff/ 匹配到的行沒有顯示,但是已經做了更改,

             再被s/9/pppp/匹配到的話會做顯示,但是被s/9/pppp/的行都會顯示

sed編輯器使用

sed編輯器使用


         -f  從指定的文件中讀取編輯腳本

              腳本中僅寫地址命令,每條命令寫在一行,多條命令時,分行寫即可

              在腳本中寫多條命令時,相當于加上了-e選項

sed編輯器使用

               

sed編輯器使用

 

           -r  支持擴展的正則表達式

           -i.bak  備份文件,并修改原文件

 

   script :地址命令

        前面寫地址定界,后面跟命令

      地址定界:

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

          2)單地址:

               #:指定的行

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

     下圖中是將passwd文件中包含ma的行bash更改為csh

             sed編輯器使用

          3)地址范圍:

               #,#  從第幾行到第幾行

               #,+#  從第幾行至增加的行數

                     例如:3,4 從第三行到第七行

               /pat1/,/part2/

              #,/part1/

           4) ~: 步進

                 1~2  奇數行

                 2~2  偶數行

            也同樣可以寫成1~3,相當于顯示1 4 7 10…     

         sed編輯器使用

      顯示r開頭的行

           sed編輯器使用

 

              /part1/,/part2/

              sed編輯器使用

編輯命令:

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

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

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

4種可用的替換標記:

  數字,表明新文本將替換第幾處模式匹配的地方;

g,表明新文本將會替換所有匹配的文本;

p,表明原先行的內容要打印出來;

  w file,將替換的結果寫到文件中。

在第一類替換中,可以指定sed編輯器用新文本替換第幾處模式匹配的地方。

sed編輯器使用

          2表示在每一行第二次匹配處做更改

  第四類w選項可以將更改的文件寫入到文本中,如下圖所示

sed編輯器使用

    

a  在指定行后追加文本 支持\n多行追加

i 在指定行前追加

sed編輯器使用

  sed編輯器使用

 c   替換命令,支持文本尋址

  sed編輯器使用

=  打印行號

sed編輯器使用

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

r 將一個獨立文件中的數據插入到數據流中。

$ cat data12.txt

This is an added line.

This is the second added line.

$

$ sed ‘3r data12.txt’
data6.txt

This is line number 1.

This is line number 2.

This is line number 3.

This is an added line.

This is the second added line.

  This is line number 4

 

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

(0)
mapipimapipi
上一篇 2017-06-19 17:22
下一篇 2017-06-20 11:05

相關推薦

  • Codis集群3.03安裝配置基礎

    Codis基礎 01.codis是一個分布式的Redis解決方案,對于上層的應用來說,連接Codis Proxy和連接原生的Redis Server沒有明顯的區別。 codis底層會處理請求的轉發,不停機的數據遷移等工作,所有后邊的一切事情,對于前面客戶端來說是透明的,可以簡單的認為后邊連接是一個內存無限大的Redis服務。 codis架構圖如下: 02.c…

    Linux干貨 2016-09-26
  • 計算機網絡基礎及常用工具

    Linux網絡屬性配置      計算機網絡:      TCP/IP: 協議棧(使用)      ISO, OSI: 協議棧(學習)  MAC:Media Access Control      48bits:   &…

    Linux干貨 2017-01-02
  • RPM總結(一)

    軟件包基礎軟件包運行環境硬件、內核、應用程序的關系包管理器程序包管理器Linux不同系統上的包管理器RPM的優點rpm包命名方式一般源代碼的命名rpm包的命名rpm包的分類與拆包包管理工具RPM包管理器:程序包管理器:獲取程序包的途徑:rpm包管理CentOS系統上使用rpm命令管理程序包:安裝升級:降級降級實例more 軟件包基礎 包管理過程中,最常用的操…

    Linux干貨 2016-08-24
  • 馬哥linux2014|2015全套教程

    1、本課程全程將基于集成了Openstack云環境、支持高精度時間(PTP)及虛擬化性能大大提升的RHEL 6.5或CentOS 6.6,間或介紹CentOS 7系統的使用; 2、此文章給出的只是個課程知識點框架,實際講解過程相當精細;另外,知識點講授的次序未必同此文章所標示的順序相同; 3、第15期面授班定于2015年3月24號開課;本期將會是馬哥教育數年…

    Linux干貨 2015-07-14
  • RPM和YUM的使用說明

    一、RPM包管理程序 centos系統上使用rpm命令管理程序包: 安裝、卸載、升級、查詢、校驗、數據庫維護 RPM包安裝選項:   –test:測試安裝,但不真正執行安裝   –nodeps:忽略依賴關系   –nosignature:不檢查來源合法性   –nodig…

    Linux干貨 2016-08-24
  • N23_第1周博客作業

    1、描述計算機的組成及其功能。     根據馮·諾依曼體系計算機有中央處理器、主存儲器、輸入/輸出三個子系統組成。 1.中央處理器 CPU(Central Processing Unit)用于數據運算。CPU有控制單元、算數邏輯單元、寄存器組組成。 (1)控制單元:控制各個子系統操作 (2)算數邏輯單元:對數據進行邏輯、移位和算數運算 邏…

    Linux干貨 2016-09-19
欧美性久久久久