Linux三劍客之sed命令

一.sed命令概述

Stream EDitor ,行編輯器

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

二.sed工具的用法:

sed [option]… ‘script’ inputfile…

 

常用選項:

-n 不輸出模式空間內容到屏幕,即不自動打印

-e 多點編輯

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

-r 支持使用擴展正則表達式

-i 原處編輯(慎用)

                                              blob.png

blob.png

script:

地址命令’

地址定界:

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

2) 單地址:#:指定的行

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

blob.png

3) 地址范圍

#,#

#,+#

blob.png

/pat1/,/pat2/

 

#,/pat1/

4)~:步進

1~2奇數行

2~2偶數行

blob.png

 

 

編輯命令:

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

blob.png

blob.png

 

 

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

blob.png

blob.png

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

blob.png

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

blob.png

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

blob.png

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

blob.png

 

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

blob.png

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

blob.png

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

blob.png

 

sed工具

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

s/string1/string2

blob.png

替換標記:

g:行內全局替換

blob.png

p:顯示替換成功的行

blob.png

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

blob.png

三.sed 高級編輯工具

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

 

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

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

                                              blob.png

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

blob.png

blob.png

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

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

blob.png

blob.png

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

blob.png

d:刪除模式空間中的行

blob.png

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

 

 

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

(0)
KartikKartik
上一篇 2016-08-15
下一篇 2016-08-15

相關推薦

  • 22期第三周課堂作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who |cut -d" " -f 1 |uniq     2、取出最后登錄到當前系統的用戶的相關信息。 […

    Linux干貨 2016-08-29
  • 初識LINUX

    初識LINUX 一、計算機的組成 二、Linux的發行版本 發行版:數百種之多,主要分為: Debian分支:ubuntu、mint、knopix Slackware分支:S.u.S.E–>SLES、OpenSUSE RedHat分支: Redhat–>Centos   Fedora Core Gent…

    Linux干貨 2016-09-17
  • 初至馬哥教育

    linux面授班30期

    2018-03-26
  • 內核升級和救援模式

    http://www.cnblogs.com/wzhuo/p/6728336.html 

    Linux干貨 2017-04-24
  • 集群-ipvsadm和NAT實驗(3)

    糾正:報文進入內核空間后,當到達input鏈時發現是一個集群服務時,則直接發送到postrouting鏈,不經過forward鏈。 調度算法: 1、靜態方法: rr:輪詢,即依照次序從所有RS中進行挑選 wrr:加權輪詢,按照權重在RS中進行輪詢 sh:source hashing,源地址哈希,即對來自相同客戶端的請求發送至同一RS,這樣會破壞負載均衡效果?!?/p>

    Linux干貨 2015-12-15
  • 程序包管理及定時任務

    程序包管理及定時任務

    Linux干貨 2018-01-01
欧美性久久久久