shell指令碼工具之sed命令

2021-09-21 09:34:07 字數 2244 閱讀 7010

sed就是批處理的流編輯器,可以對來自檔案或標準輸入的輸入流進行轉換,sed通常被用作管道中的過濾器.由於sed僅僅對其輸入進行一遍掃瞄,因此比其它互動式編輯器更加高效.

檔案內容:

[root@tong1 opt]# cat sed.txt 

1tong

2 cheng

3 hellow

4word

wu han

2 4 5

jdtao bao

[root@tong1 opt]#

常用引數:

-n              --只輸出匹配的行

-e              --多項編輯

-f               --使用指令碼對檔案處理

-i               --直接修改檔案內容

-r              --在指令碼中使用擴充套件正規表示式

1.只顯示匹配的行

[root@tong1 opt]# sed -n '2p' sed.txt 

tong

[root@tong1 opt]# sed -n '/^j/,$p' sed.txt      --以j開頭到結尾輸出

jdtao bao

[root@tong1 opt]#

2.直接修改檔案內容

[root@tong1 opt]# sed -i '/3/c 3.00' sed.txt 

[root@tong1 opt]# grep '3.00' sed.txt 

3.00

[root@tong1 opt]#

3.使用指令碼名對檔案處理

[root@tong1 opt]# cat 1.sh 

#!/bin/sed -f

3,5p

[root@tong1 opt]# sed -n -f 1.sh  sed.txt 

2cheng

3.00

[root@tong1 opt]#

4.對檔案多項編輯

[root@tong1 opt]# sed -n -e '2p' -e '4p' sed.txt 

tong

cheng

[root@tong1 opt]#

常用命令:

a         --在匹配字元後新增

c         --替換

d         --刪除

i          --插入

p         --列印.通常與引數 sed -n 一起用

s         --取代.通常這個 s 的動作可以搭配正規表示式。例如 1,20s/old/new/g

5.在檔案中追加內容

[root@tong1 opt]# sed '/2/a\1111111111' sed.txt 

1tong

21111111111

cheng

3.00

hellow

4word

wu han

21111111111

jdtao bao

[root@tong1 opt]#

6.替換匹配的內容

[root@tong1 opt]# sed '/2/c\1111111111' sed.txt 

1tong

1111111111

cheng

3.00

hellow

4word

wu han

1111111111

jdtao bao

[root@tong1 opt]#

7.刪除檔案的內容

[root@tong1 opt]# sed '3,10d' sed.txt 

1tong

jdtao bao

[root@tong1 opt]#

8.列印檔案中的內容

[root@tong1 opt]# sed -n '3,4p' sed.txt 

2cheng

[root@tong1 opt]# sed -n '/2/,5p' sed.txt 

2cheng

3.00

2[root@tong1 opt]#

9.將匹配的內容儲存到另乙個檔案中

[root@tong1 opt]# sed -n '3,4 w  2.txt' sed.txt 

[root@tong1 opt]# cat 2.txt 

2cheng

[root@tong1 opt]#

shell指令碼之sed工具使用

執行 顯示 sed 選項 操作 引數 sed 選項 f 指令碼檔案 引數 3.3.1 p 輸出符合條件的文字 root localhost sed n p test.txt 輸出所有內容,等同於 cat test.txt 省略內容 root localhost sed n 3p test.txt 輸...

shell指令碼之sed工具使用

二 sed命令常見用法 sed 選項 操作 引數 sed 選項 f 指令碼檔案 引數選項 解釋 e或一expression 表示用指定命令或者指令碼來處理輸入的文字檔案 f或 file 表示用指定的指令碼檔案來處理輸入的文字檔案 h或 help 顯示幫助 n quiet或silent 表示僅顯示處理...

Shell指令碼sed命令

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