三劍客之sed

參數說明:

-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
發佈了26 篇原創文章 · 獲贊 32 · 訪問量 1612
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章