sed使用詳解

vim  ,sed

1.首先,sed作為一個流編譯器,它是對文本進行處理的,它和grep雖然都是對文本進行處理的,但是sed的處理機制和grep還是有很大的不同的,grep:文本過濾(模式:pattern)工具;grep, egrep, fgrep(不支持正則表達式搜索)sed:stream editor,文本編輯工具;awk:Linux上的實現gawk,文本報告生成器。sed處理文本是一次處理一行的內容,把需要處理的行存儲到臨時緩沖區,稱為“模式空間”,再sed處理緩沖區中的內容,而后,把處理后的內容輸出到屏幕。 

sed的格式為:

sed [option] … 'script' inputfile

-n :不輸出模式空間內容的自動打印,常與 -p 配合使用

-e :多點編輯,就是-e …-e … 進行多條件匹配。

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

-i :原處編輯;sed默認是歲對文件進行復制到模式空間內再進行編譯,使用-i選項后,sed是直接對原文件進行的修改。

script :地址定界

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

(2).單地址: #:指定的行 ;/pattern/ :被此處模式所能夠匹配到的每一行

(3).地址范圍:

    #,#   從第一個#代替的數到第二個#代替的數的行

    #,+# 

    /pat1/,/pat2/

    #,/pat1/: 從#號開始到第一次能匹配結束

(4). 步進地址  ~

    1~2  :指從第一行開始每次步進兩行,1,3,5,7…奇數行編輯命令:

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

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

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

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

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

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

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

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

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

    s / / / :查找替換,支持使用別的分隔符,s@ @ @,s # # # 這樣的。  替換的標記 :g :行內全局替換p :顯示替換成功的行  w /path/tosomefile :將替換成功的行保存至文件中。sed1.png

sed2.png

sed3.png

——————————————————————————————–

sed 基礎練習: # 對于文件的操作可以先使用cat查看一下文件中的內容,以便對sed顯示后作為對比,觀察結果。

1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的
空白字符
?

sedtest1.png

2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空
白字符的行的行首的#和空白字符

sedtest2.png

3、在/etc/passwd每一行行首增加#號
?

sedtest3.png

 

4、在/etc/fstab文件中不以#開頭的行的行首增加#號
?

 sedtest4.2.png

5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名
?

 sedtest5.png

6、利用sed 取出ifconfig命令中本機的IPv4地址

sedtest6.png

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

(0)
zhongzhong
上一篇 2016-08-11
下一篇 2016-08-11

相關推薦

  • N22-第一周(作業)

    馬哥教育網絡班22期-第一周課程練習:   一.描述計算機的組成及其功能       計算機組成:CPU :包含控制器,運算器,寄存器,緩存。通過時序復用的方式來處理加工來自輸入設備的指令或數據,協調各組件之間的工作       存儲器(內存):編址存儲單元陣列,用于暫時存放CP…

    Linux干貨 2016-08-13
  • 集中管理利器-puppet快速入門-下

    Puppet配置 1.    文件管理 file 文件服務器寫法: /etc/puppet/ fileserver.conf 定義 [files] path /tmp/files  ## puppet數據存放目錄 =è后面遠程備份實戰會用到 allow *.example.com 實戰1: 備份master機…

    Linux干貨 2015-05-07
  • Linux的終端類型

         序  終端的概念是由Ken Thompson提出的,是人機交互的接口。它是一種字符型設備,有多種類型,它大體上分為設備終端,物理終端,虛擬終端,圖形終端,串行終端,偽終端。 一、   設備終端  設備終端就是顯而易見的外在設備,比如鍵盤、鼠標和顯示器等。 二、&nbsp…

    Linux干貨 2016-10-19
  • linux中的權限和ACL

    linux中權限詳解和ACL

    2017-11-18
  • 第八周作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;     在線的主機使用綠色顯示;     不在線的主使用紅色顯示; 2、如何給網絡接口配置多個地址,有哪些方式? 方法3:在/etc/sysconfig/netw…

    2017-04-20
  • lvs-nat的實現

    nat的知識點

    2018-03-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-12 09:48

    文章對sed的常見用法有了一個完整的總結,有理論也有自己的操作,可以嘗試著用圖來解釋sed的工作原理,這樣會看起來更清晰哦

欧美性久久久久