1. 程式人生 > >sed:輕量級流編輯器

sed:輕量級流編輯器

alt 新增 追加 替換 內容 插入 範圍 技術 文件名

一. sed命令

sed是一種幾乎包括在所有UNIX平臺(包括Linux)的輕量級流編輯器。sed主要是用來將數據進行選取、替換、刪除、新增的命令

註意:vi命令只能修改文件,但不能修改命令的結果,如修改df結果的內容,sed的好處是不僅可以修改文件,而且可以從管道符接收數據來進行操作(修改命令的結果)

二. 語法

sed [選項] ‘[動作]‘ 文件名

選項:

  -n: 一般sed命令會把所有數據都輸出到屏幕,如果加入此選擇,則只會把經過sed命令處理的行輸出到屏幕

  -e: 允許對輸入數據應用多條sed命令編輯

  -i: 用sed的修改結果直接修改讀取數據的文件,而不是由屏幕輸出(不光輸出更改,源文件也會修改)

動作:

  a \: 追加,在當前行後添加一行或多行。添加多行時,除最後一行外,每行末尾需要用"\"代表數據未完結

  c\: 行替換,用c後面的字符串替換原數據行,替換多行時,除最後一行外,每行末尾需用"\"代表數據未完結

  i\: 插入,在當前行前插入一行或多行。插入多行時,除最後一行外,每行末尾需要用"\"代表數據未完結

  d: 刪除,刪除指定的行

  p: 打印,輸出指定的行

  s: 字符替換,用一個字符串替換另外一個字符串。格式為"行範圍s/舊字串/新字串/g" (和vim中的替換格式類似)

三. 實例

1. 查看

查看文件的第二行(不加-n,不僅把sed處理的行輸出到屏幕,還會把所有的數據輸出到屏幕,加了-n只會輸出sed處理的行)

技術分享圖片

處理命令的執行結果(放在管道符後)

技術分享圖片

2. 刪除

刪除第二行到第四行的數據,但不修改文件本身

技術分享圖片

3. 追加

在第二行後追加hello

技術分享圖片

4. 插入

在第二行前插入兩行數據

技術分享圖片

5. 替換行

替換第二行

技術分享圖片

6. 字符串替換

#sed ‘s/舊字串/新字串/g‘ 文件名

把第3行的74替換成99

技術分享圖片

把第3行的74替換成99,並直接寫入文件

技術分享圖片

多個條件同時替換,同時把"Liming"和"Gao"替換為空

技術分享圖片

sed:輕量級流編輯器