格式:sed [-nefri] [動作]
其中n/e/f/r/i
動作有a,i,c,p,s
-n 預設把sed命令執行的結果,與原來的資料一起輸出到螢幕,如果加了-n,則只顯示sed處理後的內容
sed -n '1p' sed.txt
a 在匹配的當前行的後面新增內容,add
sed '/******/ahelloworld' sed.txt world後面有符號/則會直接顯示出來
i 在匹配的當前行的上面新增內容,insert
sed '/beautiful/ihelloyou' sed.txt
& 在當前行匹配字串的行尾新增字串
sed 's/than/&hellworld/' sed.txt 則直接在than的後面新增字串hellworld
c 把該行替換成c後面的字串
sed '2,4c hello world' sed.txt 2-4行的內容替換成hello world
s 舊字元替換新字元,行數s/舊字串/新字串/g
sed 's/than/hello/' sed.txt
sed 's/than/hello/g' sed.txt
sed '2s/than/hahaha/' sed.txt 匹配第二行的
sed '2,4s/than/hahaha/' sed.txt 匹配第二行到第四行的
/pa/s/pa1/pa2/ 查詢包含pa的行,然後把該行的第乙個匹配pa1的字串替換為pa2
/pa/s/pa1/pa2/g 查詢包含pa的行,然後把該行所有的匹配pa1的字串替換為pa2,g即代表global
sed '/beautiful/s/than/hahaha/' sed.txt
sed '/beautiful/s/than/hahahah/g' sed.txt
sed '/by/s/^/hello/' sed.txt 在包含by行的頭加上hello
sed '/by/s/^/&hello/' sed.txt
p 輸出,預設
sed '1,3p' sed.txt 顯示匹配的1-3行內容和原來內容
sed -n '1,3p' sed.txt 只顯示匹配行的內容
sed -n '2p;$p' sed.txt 顯示第二行和最後一行的內容,中間用分號隔開,多行可以sed -n '2p;3p;$p' sed
d 刪除
sed '/start/ ,/end/d' file 刪除包含第start行到第end行之間的所有行內容
sed '/start/, 8d' file 刪除包含第start行到第八行的內容
sed '1d' sed.txt 刪除第一行
sed '2,3d' sed.txt 刪除第二到三行
sed '/******/,$d' sed.txt 刪除匹配行到最後一行
-e 多個命令組合,對檔案內容執行多條sed命令條件
sed -e '/******/s/better/worse/' -e '/flat/s/better/good/' sed.txt
; 多個命令組合,注意引號位置
sed -e '/complex/s/than/less/ ; /flat/s/than/well/' sed.txt
變數引用,需要先設定變數,不能用系統變數
abc=123
sed "s/******/$abc/g" sed.txt
-i 把sed命令修改的結果直接寫入到檔案裡去,一般用來編輯檔案內指定內容,螢幕不輸出內容
如果要對所做的修改儲存到原檔案,則要加上-i,就會直接修改原檔案內容
sed -i '/bash/s/bin/sbin/' sed.txt
-f 指定執行sed指令碼的檔名,可以把常用的或者是command比較長的內容寫到乙個檔案中
vim sedcommand
s/******/difficult/
sed -f sedcommand sed.txt
另外可以在乙個檔案裡填寫多個條件,然後分別匹配
vim sedcommand
s/******/difficult/
1p-r 支援擴充套件正規表示式的語法,預設是基礎正規表示式
演示例子
cat sed.txt
the zen of python, by tim peters
beautiful is better than ugly.than
explicit is better than implicit.
****** is better than complex.
complex is better than complicated.
flat is better than nested.
sparse is better than dense.
/sbin/bash
shell四劍客之sed
sed是乙個非互動式文字編輯器,它一次處理一行內容。作用 編輯乙個或多個檔案,簡化對檔案的反覆操作 編寫轉換程式等 在處理文字時把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 緊接著用sed命令處理緩衝區中的內容,處理完後把緩衝區的內容輸出至螢幕或寫入檔案。預設輸出到螢幕的文字已經修改,但檔案內容...
shell程式設計四劍客之SED
sed options commands filename sed工具預設處理文字,文字內容輸出螢幕已經修改,但是檔案內容其實沒有修改,需要加 i引數即對檔案徹底修改 x x為指定行號 x,y 指定從x到y的行號範圍 pattern 查詢包含模式的行 pattern pattern 查詢包含兩個模式...
shell三劍客之sed
sed命令是文字處理工具,讀取文字內容,根據指定的條件進行處理,對檔案內容進行增刪改查,常與正規表示式進行相互配合使用。他是一種流編輯器,一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的...