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
下一篇 2017-06-20

相關推薦

  • linux網絡配置

    主要內容: ip地址以及子網劃分 路由基本概念 網絡配置工具:ifconfig,ip,netstat使用 網卡配置文件及修改 IP地址: 它們可唯一標識 IP 網絡中的每臺設備 v  每臺主機(計算機、網絡設備、外圍設備)必須具有唯 一的地址 v IP地址由兩部分組成:   &n…

    Linux干貨 2016-09-07
  • 文件的查找命令 find 和 locate

    文件的查找命令 find 和 locate find 功能:實時查找工具,通過遍歷指定路徑完成文件查找 工作特點: ?  查找速度略慢?  精確查找?  實時查找?  可能只搜索用戶具備讀取和執行權限的目錄 語法:   find [OPTION]… [查找路徑] [查找條件] [處理動作] 查找路徑:指定具…

    Linux干貨 2016-08-16
  • Linux基礎知識之用戶和組的配置文件解析

    實驗環境:  Linux系統的版本為CentOS6.8_x86_64版本,以root用戶遠程用xshell連接,進行實驗。 1.創建用戶設置的配置文件:/etc/default/useradd        useradd 的配置文件如下圖所示:        &nbs…

    Linux干貨 2016-08-02
  • 起航——學習Linux工具之VMware Workstation

    一:安裝VMware(Windows平臺) 二:創建一臺虛擬機 到此為止我們就創建了一個擁有一顆CPU、1GB內存和一塊20GB硬盤的虛擬機,接下來就可以愉快的安裝操作系統了 ^_^  

    2018-03-26
  • linux全方位掌握一個命令–思路比方法更重要

    Linux命令眾多,當不清楚一個命令的使用方法時,我們該怎樣了解命令的屬性和幫助? 1.  用type命令了解一個命令的屬性 [root@zejin240 testdir]# type cdcd is a shell builtin[root@zejin240 testdir]# type rmrm is aliased to `rm -i&#03…

    Linux干貨 2016-10-30
  • Linux基礎知識(五)-文件查找命令find

    對grep 和 find 命令的操作 1、顯示當前系統上root、fedora或user1用戶的默認shell; 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(); 3、使用echo命令輸出一個路徑,使用grep取出其基名; 4、找出ifconfig命令結果中的1-255之間數字; 5、寫一個…

    Linux干貨 2016-10-24
欧美性久久久久