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把所有輸入行都列印在標準...