參數說明:
-f<script文件>或–file=<script文件> 以選項中指定的script文件來處理輸入的文本文件。
-h或–help 顯示幫助。
-n或–quiet或–silent 僅顯示script處理後的結果。
-V或–version 顯示版本信息。
-e允許多點編輯
動作說明:
a :新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
c :取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!
d :刪除,因爲是刪除啊,所以 d 後面通常不接任何咚咚;
i :插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p :打印,亦即將某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行~
s :取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!
新增 a
將第二行後面增加一行內容
[root@ localhost ~] sed '2a hello' test.txt
zjs
zjs
hello
zjs
zjs
將一至三行內容後面各增加一行內容
[root@ localhost ~] sed '1,3a hello' test.txt
zjs
hello
zjs
hello
zjs
hello
zjs
替換 c
將第一行內容正行替換
[root@ localhost ~] sed '2c hello' test.txt
zjs
hello
zjs
zjs
將第一至三行內容替成一行內容
[root@ localhost ~] sed '1,3c hello' test.txt
hello
zjs
刪除 d
刪除第二行
[root@ localhost ~] sed '2d' test.txt
1zjs
3zjs
4zjs
刪除第一至三
[root@ localhost ~] sed '1,3d' test.txt
4zjs
插入 i
在第二行前面插入一行內容
[root@ localhost ~] sed '2i hello' test.txt
1zjs
hello
2zjs
3zjs
4zjs
在第一至三各插入一行內容
[root@ localhost ~] sed '1,3i hello' test.txt
hello
1zjs
hello
2zjs
hello
3zjs
4zjs
打印 p
重複打印第二行
[root@ localhost ~] sed '2p' test.txt
1zjs
2zjs
2zjs
3zjs
4zjs
重複打印第一至三行
[root@ localhost ~] sed '1,3p' test.txt
1zjs
1zjs
2zjs
2zjs
3zjs
3zjs
4zjs
只打印第二行
[root@ localhost ~] sed -n '2p' test.txt
2zjs
只打印第一至三行
[root@ localhost ~] sed -n '1,3p' test.txt
1zjs
2zjs
3zjs
打印匹配到hello的行,類似grep
[root@ localhost ~] sed -n '/hello/p' test.txt
5hello
打印不是hello的行
[root@ localhost ~] sed -n '/hello/!p' test.txt
1zjs
2zjs
3zjs
4zjs
只打印匹配替換的行
[root@ localhost ~] sed -n 's/hello/new/gp' test.txt
5new
替換 s
匹配每一行的第一個z替換成zh
[root@ localhost ~] sed 's/z/zh/' test.txt
1zhjs
2zhjs
3zhjs
4zhjs
5hello
匹配所以的z替換成zh,g代表一行多個,i代表匹配忽略大小寫
[root@ localhost ~] sed 's/z/zh/gi' test.txt
1zhjszh
2zhjszh
3zhjszh
4zhjszh
5hello
匹配二至四行的z替換成zh
[root@ localhost ~] sed '2,4s/z/zh/gi' test.txt
1zjsz
2zhjszh
3zhjszh
4zhjszh
5hello
參數 -e
[root@ localhost ~] sed -e 's/z/zh/g' -e '3d' test.txt
1zhjszh
2zhjszh
4zhjszh
5hello