sed基礎工具詳解

2021-08-19 11:49:35 字數 2016 閱讀 8708

stream editor,流式編輯器

-非互動,基於模式匹配過濾及修改文字

-逐行處理,並將結果輸出到螢幕

-可實現對檔案的輸出,輸出,刪除,替換,複雜,剪下,匯入,匯出等各種操作

主要用法

常見命令選項

-n:遮蔽預設輸出(全部文字)

-i:直接修改檔案內容

-r:啟用擴充套件的正則表達方,若與其他選項一起使用,應作為首個選項

條件,可以是行號或/正則/

-行號可以使用當個數字表示單行

-或者3,5表示連續的多行

-省掉條件,預設逐行處理全部文字

-匹配正則時,需要使用//

[root@server0 ~]# sed -n '2,4p' /etc/passwd  輸出第2-4行

[root@server0 ~]# sed -n 'p' /etc/passwd  輸出全部

[root@server0 ~]# sed -n '/root/p' /etc/passwd  輸出包含root的行

基本動作指令

替換操作的分隔『』/『』可改用其他字元,如#,&等,便於修改檔案路徑。

小試牛刀:

1.列印zhy.txt的所有行

[root@server0 ~]# sed -n 'p' zhy.txt    

2.列印zhy.txt的第2行 

[root@server0 ~]# sed -n '2p' zhy.txt

3.列印zhy.txt的以zhu開頭的行

[root@server0 ~]# sed -n '/^zhu/p' zhy.txt

4.列印zhy.txt的1~2行

[root@server0 ~]# sed -n '1,2p' zhy.txt

5.列印zhy.txt的總行數

[root@server0 ~]# sed -n '$=' zhy.txt

6.列印zhy.txt的第1行以後面的2行

[root@server0 ~]# sed -n '1,+2p' zhy.txt

1.刪除zhy.txt的1到2行

[root@server0 ~]# sed '1,2d' zhy.txt

2.刪除zhy.txt的包含hope的行

[root@server0 ~]# sed '/hope/d' zhy.txt

3.刪除zhy.txt的以zhu開頭的行

[root@server0 ~]# sed '/^zhu/d' zhy.txt

4.刪除zhy.txt的以here結尾的行

[root@server0 ~]# sed '/here$/d' zhy.txt

5.刪除zhy.txt的空行

[root@server0 ~]# sed '/^$/d' zhy.txt

替換文字

1.在zhy.txt把zhy替換aaa

[root@server0 ~]# sed -n 's/zhu/aaa/p' zhy.txt

2.在zhy.txt把每行中第2個h替換g

[root@server0 ~]# sed 's/h/g/2' zhy.txt

3.在zhy.txt把所有的h都替換ddd

[root@server0 ~]# sed 's/h/ddd/g' zhy.txt

4.在zhy.txt把所有的h都刪掉

[root@server0 ~]# sed 's/h//g' zhy.txt

5.在zhy.txt把1到3行首行加上#

[root@server0 ~]# sed '1,3s/^/#/' zhy.txt

6.在zhy.txt把1到3行首行刪掉#

[root@server0 ~]# sed '1,3s/^#//' zhy.txt

sed工具簡介

基本上來說,sed是乙個可以分析standard input stdin 的資料,然後將資料經過處理後,再將它輸出到standard output stdout 的工具。比如取代,刪除,新增,選取特定行等等功能。語法基本上就是 sed nefr some actions here actions有a...

sed命令詳解

sed 是乙個精簡的 非互動式的編輯器。它能執行與編輯vi和emacs相同的編輯任務。sed編輯器不提供互動使用方式 只能在命令列輸入編輯命令 指定檔案 名,然後在螢幕上察看輸出。sed編輯器沒有破壞性。它不會修改檔案,除非用shell重定向來儲存輸出結果。預設情況下,所以的輸出都被列印到螢幕上。1...

SED 使用詳解

是乙個非互動性文字流編輯器。它編輯檔案或標準輸入匯出的文字拷貝。2.通過行號或正規表示式指定要改變的文字行 3.sed 不與初始檔案打交道,而只與它的乙個拷貝打交道,如果操作結果沒有重定向到乙個檔案,那麼將輸出到螢幕。呼叫方式 a.命令列方式 b.將sed命令插入指令碼檔案中,然後呼叫sed c.將...