shell中的sed命令

2021-10-10 08:52:53 字數 1733 閱讀 7660

sed命令 主要是對文字進行編輯,當需要對文字進行反覆操作,或者編寫指令碼時,會經常用到!sed命令的組成 和其他命令不太一樣的是多了個動作。一般都是命令 -引數  正則變數,文字變數。在sed中可以在正則變數裡新增動作,而且一說到正則肯定離不開轉義字元,它的轉義字元也不太一樣。
引數

引數功能

備註-e

以指定的script來處理輸入的文字檔案。

expression,就類似於執行匹配的正則

-n只列印符合條件的文字

only(n) grep的 是o

-r正規表示式

regularexpression(r)

-i原地修改檔案

類似於vi中 i

-f指定正則檔案來進行進一步的操作

-file和e是有區別的

動作 (常用部分)

waring:所有的動作都必須加上單引號,否則無效引數

功能備註a追加

i增加increasep列印

printd刪除

deletec替換

s替換(通常跟正規表示式一起連用)

r從別的檔案中讀

read,類似於<

w將結果寫入(儲存)到檔案中

write,型別與》重定向

&儲存查詢串以便在替換串中引用

定位符(表引用,引用匹配的文字)

例子文字準備:more /etc/hosts |head -10 >a.txt

1.[root@localhost ~]# sed 『』 a.txt#對檔案什麼都不做

[root@localhost ~]# sed -n 『p』 a.txt#列印每一行,並取消預設輸出

[root@localhost ~]# sed -n 『1p』 a.txt#列印第1行

[root@localhost ~]# sed -n 『2p』 a.txt#列印第2行

[root@localhost ~]# sed -n 『1,5p』 a.txt#列印1到5行

[root@localhost ~]# sed -n 『$p』 a.txt#列印最後1行

2.[root@localhost ~]# sed 『$a99999』 a.txt#檔案最後一行下面增加內容

[root@localhost ~]# sed 『a99999』 a.txt#檔案每行下面增加內容

[root@localhost ~]# sed 『5a99999』 a.txt#檔案第5行下面增加內容

[root@localhost ~]# sed 『$i99999』 a.txt#檔案最後一行上一行增加內容

[root@localhost ~]# sed 『i99999』 a.txt#檔案每行上一行增加內容

[root@localhost ~]# sed 『6i99999』 a.txt#檔案第6行上一行增加內容

[root@localhost ~]# sed 『/^bin/ihello』 a.txt#以bin開頭行的上一行插入內容

Shell中的sed命令

sed的優點 sed速度快,在啟動vim的時間,sed已經完成了需要執行的操作 echo this is a test sed s test testing sed s dog tiger test1sed 2s dog tiger test1 指定替換第二行 sed 4s dog tiger te...

Shell指令碼sed命令

1 p命令 命令p用於顯示模式空間的內容。預設情況下,sed把輸入行列印在螢幕上,選項 n用於取消預設的列印操作。當選項 n和命令p同時出現時,sed可列印選定的內容。例子 plain view plain copy 1 sed my p datafile 預設情況下,sed把所有輸入行都列印在標準...

Shell 字元擷取命令 sed命令

shell 字元擷取命令 sed命令 sed是一種幾乎包括在所有unix平台 包括linux 的輕量級流編輯器。其主要用來將資料進行選取 替換 刪除 新增的命令。vim只能修改檔案,sed能修改檔案,還能從管道符接收命令。root hhh sed 選項 動作 檔名 選項 n 只把經過sed命令處理的...