sed工具

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

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

sed工具

sed-e: 多點編輯,對每行處理時,可以有多個Script

sed工具

sed-f: 把Script寫到文件當中,在執行sed時-f 指定文件路徑,如果是多個Script,換行寫

sed工具

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

sed工具

sed -i: 直接將處理的結果寫入文件,源文件會被更改 建議在將處理的結果寫入文件之前備份一份

sed工具


地址定界:
(1) 不給地址:對全文進行處理
    sed -n ‘p’ 文件

sed工具

(2) 單地址:
    #: 指定的行
    sed -n ‘2p’ 文件

sed工具

    /pattern/:被此處模式所能夠匹配到的每一行
    sed -n ‘/^1/p’文件

sed工具

(3) 地址范圍:
    #,#

sed -n ‘1,3p’

sed工具
    #,+#
    sed -n ‘2,+1p’

sed工具

    /pat1/,/pat2/
    sed -n ‘/redhat/,/linux/p’

sed工具

    #,/pat1/
    sed -n ‘2,/linux/p‘

            同上

(4) ~:步進
    sed -n ‘1~2p’  只打印奇數行

    sed -n ‘2~2p’  只打印偶數行

sed工具

編輯命令

d: 刪除模式空間匹配的行,并立即啟用下一輪循環
    sed ‘2d’ 文件

sed工具

p:打印當前模式空間內容,追加到默認輸出之后
    sed ‘2p’ 文件

sed工具

a [\]text:在指定行后面追加文本,支持使用\n實現多行追加

sed ‘2a\123\n456\n789’ 文件

sed工具

i [\]text:在行前面插入文本
    sed ‘2i\123\n456\n789’ 文件

sed工具

c [\]text:替換行為單行或多行文本
    sed ‘2c\123\n456\n789’ 文件

sed工具

w /path/somefile: 保存模式匹配的行至指定文件
    sed -n ‘3w /root/3.file’ 文件

sed工具

r /path/somefile:讀取指定文件的文本至模式空間中匹配到的行后
    sed ‘3r /root/mage.txt’ 文件

sed工具

=: 為模式空間中的行打印行號
    sed ‘=’ 文件

sed工具

!:模式空間中匹配行取反處理
    sed -n ‘2!p’ 文件

sed工具
s///:查找替換,支持使用其它分隔符,s@@@,s###替換標記:

sed工具

g: 行內全局替換

    sed ‘s/dog/cat/g’ 文件

sed工具

原創文章,作者:李先生,如若轉載,請注明出處:http://www.www58058.com/85389

(0)
李先生李先生
上一篇 2017-08-26 21:03
下一篇 2017-08-26 21:54

相關推薦

  • FHS文件系統各目錄及功能

    FHS即:filesystem hierarchy standard 的縮寫,意思是文件系統目錄標準,Linux系統采用這種文件組織形式,這是一種樹形結構組織文件。如下圖, /bin : 此文件用于放置二進制執行文件。 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir,…

    Linux干貨 2016-10-17
  • RAID簡介

    一,什么是raid? RAID(Redundant Arrays of Independent Disks)中文叫磁盤陣列。 簡單來講就是把很多的硬盤組織在一起來使用。        RAID技術分為幾種不同的等級,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、…

    Linux干貨 2016-06-22
  • linux 網路管理路由和team網絡組

    如何實現把linux當路由器來使用,實現不同網段之間的通信訪問,這就是今天所要實現的路由配置   環境準備:4臺虛擬機,兩臺中間兩臺作為路由器來使用(每天主機兩塊網卡),其他兩臺作為終端主機,目的是讓不同網段的兩臺主機之間互相訪問(這里在vmware里面做的實驗,所以網卡的類型都設置為橋接)   拓撲圖:   步驟一:將A、D兩…

    Linux干貨 2017-05-07
  • Centos 7&6分布式lamp平臺

    Centos 7&6分布式lamp平臺 Centos 7&6分布式lamp平臺 一、環境介紹 lamp的實現方式 本文安裝方式 二、Centos 7 分布式lamp平臺,module方式 安裝httpd和php xcache phpMyAdmin wordpress https的phpMyAdmin 環境規劃 主機2配置mariadb 主機1…

    Linux干貨 2016-04-25
  • apache服務器

    一、改變網頁的默認位置 1、修改DocumentRoot和Directory,修改新的存放路徑為/data/htdocs/ 2、創建/data/htdocs/index.html,注意權限問題 3、注意報錯You don't have permission to access /index.html,此時去查看SElinux的狀態。命令selinu…

    Linux干貨 2016-10-09
  • 第六周作業-練習題sed,crontab,bash

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;    方法一用sed:          方法二用vim       &…

    Linux干貨 2017-01-16
欧美性久久久久