sed:輕量級流編輯器
一. 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:輕量級流編輯器