sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲「模式空間」(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無 改變,sed只是對緩衝區中原始文件的副本進行編輯,並非編輯原始的文件。除非你使用重定向存儲輸出或者使用使用sed編輯命令中的w選項。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操做。編輯器
不怎麼喜歡理論行的東西,來來來,實踐實踐~~~
操做的文件爲sedfilespa
$sed -e 3a\insertLine sedfile sed '2a insert' sedfile #在第三行後添加 即第三行開始 sed '2i insert' sedfile #在第二行前添加 即第二行開始
Paste_Image.pngcode
$sed -e '2,4d' sedfile #推薦 或者 $sed '2,4d' sedfile #沒有-e也是能夠的 #刪除第二行 $sed '2d' sedfile #要刪除第 3 到最後一行 $sed '3,$d' sedfile #注意 d表示刪除然而 sed 後面接的是動做須要以單引號括起來
Paste_Image.png文檔
$sed '2,5c 這是alic替換的content' sedfile #替換第二到第五行的內容
Paste_Image.pngstring
$sed -n '2,4p' sedfile #顯示第二到第四行 $sed -n '二p' sedfile #搜索與二相關的行
Paste_Image.pngio
$sed '/二/d' sedfile #搜索到二相關的行並刪除
Paste_Image.pngast
$sed 's/alic/燦/g' sedfile #將alic替換成燦
Paste_Image.pngtest
sed -e '3,4d' -e 's/alic/燦/g' sedfile #刪除第三四行 並且同時將alic替換成燦
Paste_Image.pngsed
注意 : 以:爲分割,將第一段和最後一段調換位置;+在裏面是特殊符號,要脫意用-rfile
sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'g test.txt
經常使用案例 :
sed ‘s/stringa1/stringa2/g’ example.txt 將example.txt文件中的 「string1」 替換成 「string2」
sed ‘/^/d’ example.txt 從example.txt文件中刪除全部空白行
sed ‘/ *#/d; /^/d’ example.txt 從example.txt文件中刪除全部註釋和空白行
echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’ 合併上下單元格內容
sed -e ‘1d’ result.txt 從文件example.txt 中排除第一行
sed -n ‘/stringa1/p’ 查看只包含詞彙 「string1」的行
sed -e ‘s/ *//’ example.txt 刪除每一行最後的空白字符
sed -e ‘s/stringa1//g’ example.txt 從文檔中只刪除詞彙 「string1」 並保留剩餘所有
sed -n ‘1,5p;5q’ example.txt 查看從第一行到第5行內容
sed -n ‘5p;5q’ example.txt 查看第5行
sed -e ‘s/00*/0/g’ example.txt 用單個零替換多個零