1. 程式人生 > 其它 >Blog.040 Shell 程式設計 sed 工具

Blog.040 Shell 程式設計 sed 工具

本章目錄

1. sed 工具概述
  1.1 sed 命令常見用法
  1.2 sed 命令選項
2. 用法例項
  2.1 檢視文字行
  2.2 刪除
  2.3 替換
  2.4 插入與新增

1. sed 工具概述

    sed(Stream EDitor)是一個強大而簡單的文字解析轉換工具,可以讀取文字,並根據指定的條件對文字內容進行編輯(刪除、替換、新增、移動等),最後輸出所有行或者僅輸出處理的某些行。
    sed 也可以在無互動的情況下實現相當複雜的文字處理操作,被廣泛應用於 Shell 指令碼中,用以完成各種自動化處理任務。
    sed 的工作流程主要包括讀取、執行和顯示

三個過程。

  • sed 編輯器

    sed 是一種流編輯器,流編輯器會在編輯器處理資料之前基於預先提供的一組規則來編輯資料流。
    sed 編輯器可以根據命令來處理資料流中的資料,這些命令要麼從命令列中輸入,要麼儲存在一個命令文字檔案中。


  1.1 sed 命令常見用法

  • sed [選項] '操作' 引數1,引數2,引數3
  • sed -e '操作' 檔案1 ,檔案2
  • sen -n -e '操作' 檔案1 ,檔案2
  • sed -i -e '操作' 檔案1 ,檔案2
  • sed [選項] -f scriptfile 引數1,引數2,引數3
  • sed -f 指令碼檔案 檔案1,檔案2
  • sed -e 'n{

  操作1
  操作2
  ...
  }' 檔案1,檔案2


  1.2 sed 命令選項

-e 或 --expression=

表示用指定命令或者指令碼來處理輸入的文字檔案,執行兩條命令時新增,執行一條時一般忽略

-f 或 --file= 表示用指定的指令碼檔案來處理輸入的文字檔案
-h 或--help 顯示幫助
-n、--quiet 或 silent 表示僅顯示處理後的結果
-i 直接編輯文字檔案
a 增加,在當前行的下面增加一行指定內容
c 替換,將指定的“行”替換為指定內容
d 刪除,刪除選定的行
i 插入,在選定行上面插入一行指定內容
p

列印,如果同時指定行,表示列印指定行;如果不指定行,則表示列印所有內容;

如果有非列印字元,則以 ASCII 碼輸出,其通常與 “ -n ” 選項一起使用

s 替換,替換指定字元
y 字元轉換,用 y 替換時,新字元與舊字元長度一定要相同
= 列印行號
l 列印資料流中的文字和不可列印的 ASCII 碼,比如結束符 $ 製表符 \t


2. 用法例項


  2.1 檢視文字行

  2.2 刪除

  2.3 替換

  • 數字:表明新字元將替換第幾處匹配的結果,預設為1
  • g: 表明新字元會替換所有匹配的地方
  • w檔案:將替換結果儲存到檔案中


  2.4 插入與新增

  • H:剪下
  • G:貼上

-