歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> Unix sed高級工具的講解

Unix sed高級工具的講解

日期:2017/3/6 11:37:44   编辑:Unix資訊

我們今天來學習下Unix sed的知識.在Unix系統中,許多編輯工作都是用vi來完成的,因為vi是Unix系統上典型的編輯器,在很多時候,並不必須啟動vi,您可能正在寫一個shell程序,或用管道在進程之間傳遞信息,此時需要以非交互式的方式來編輯,而Unix sed在這時候就很有作用了.

Unix sed的名字來源於stream editor(流編輯器),是個過濾文本的工具.在使用sed編輯文件時,可以指定文件名,或從標准輸入中得到輸入.sed每次讀一行,並對每行作指定的編輯工作.同樣可以指定特定的行號,供Unix sed進行編輯.sed的許多用法與ed相同.

可以用下面兩種方式調用Unix sed:

  1. sed [-n][-e] 'command' filename(s)
  2. sed [-n] -f scriptfile filename(s)

sed的第一種格式用於在命令行中執行命令.默認情況下,sed將顯示所有行,-n 表示只需要打印p命令指定的行.第二種格式允許指定一個或多個包含編輯命令的腳本.下面是Unix sed的兩種不同格式中的三個選項進行總結:
-n 只打印用p命令指定的行
-e command -e後的參數是一個編輯命令
-f filename -f後的參數是包含編輯命令的文件

下面看幾個例子:

  1. sed -n 16,18p passwd.test 打印passwd.test的16到18行.
  2. sed 16,18d passwd.test 刪除passwd.test的16到18行.
  3. sed '/bsh/ d' passwd.test 刪除包含bsh的行.
  4. sed '/bsh/ ld' passwd.test 刪除除bsh行以外的行

前面僅僅用了Unix sed中的一些很表面的命令,下面總結了Unix sed的命令:
命令 說明
a 添加文本
b 轉移到標簽處
c 用文本替換行
d 刪除當前文本緩沖區
i 插入文本
P 從模式空間開始打印,知道出現新行
r 讀入模式
s 替換模式
y 轉換字符

Copyright © Linux教程網 All Rights Reserved