sed是一個流編輯器,針對行進行操作;主要用來將數據進行選取、替換、刪除、新增。與vim的不同在於可以直接修改輸出的結果,如:du輸出的內容可以直接進行修改。
格式:
sed [選項] '[動作]' 文件名
[選項]
-n 一般的命令會把所有的數據輸出到屏幕,如加了此選項後,會把經過sed命令處理的行結果輸出到屏幕:
例如:sed '2p' 文件名 將輸出所有內容,而加了sed -n '2p' 文件名之後就只有輸出第二行。
-e 允許多條命令同時編輯。
-i 直接修改原文件數據,而不是隻是顯示到屏幕上。
[動作]
動作:
a \: 追加,在當前行後添加一行或多行。添加多行時,除最後 一行
外,每行末尾需要用“\”代表數據未完結。
c \: 行替換,用c後面的字符串替換原數據行,替換多行時,除最
後一行外,每行末尾需用“\”代表數據未完結。
i \: 插入,在當期行前插入一行或多行。插入多行時,除最後 一行
外,每行末尾需要用“\”代表數據未完結。
d: 刪除,刪除指定的行。
p: 打印,輸出指定的行。
s: 字串替換,用一個字符串替換另外一個字符串。格式爲“行範
圍s/舊字串/新字串/g”(和vim中的替換格式類似)
==================================================================
[root@localhost ~]#sed '2,4d' 文件名 刪除 -------注意是單引號
[root@localhost ~]#sed '2a hello' 文件名 在第二行後追加hello(注意:並未修改原文件)
[root@localhost ~]#sed '2i hello \
>world' 文件名 在第二行前插入hello(注意:並未修改原文件)
[root@localhost ~]# sed '2c No such person'student.txt c的作用就是替換整行
字符串替換
[root@localhost ~]# sed ‘s/舊字串/新字串/g’ 文件名
[root@localhost ~]# sed '3s/74/99/g' student.txt
#在第三行中,把74換成99
[root@localhost ~]#sed -i '3s/74/99/g' student.txt
#sed操作的數據直接寫入文件
[root@localhost ~]#sed -e 's/Liming//g;(分號)s/Gao//g' student.txt
#同時把“Liming”和“Gao”替換爲空