sed [options] 'command' filename(s)
options
-e 允许多项编辑
-f 指定sed脚本文件名
-n 取消默认的输出。
command
a/ 在当前行后添加一行或多行
c/ 用新文本修改当前行
d 删除行
i/ 在当前行前插入
h 把临时内容拷贝到临时缓冲区
H 把内容追加到临时缓冲区
g 取出缓冲区内容并覆盖原有内容
G 取出缓冲区内容并追加到原有内容
l 列出非打印字符
p 打印行
q 退出sed
n 对下一行操作
! 对所有行以外的行进行处理
s 一个字符串替换成另一个字符串
w 写入新的文件
x 交换模式空间与临时缓冲区内容
y 将字符转换成另一种字符,不能对正则表达式使用。
g 全局内替换
sed元字符
sed -n '/west/,/east/p' datafile , 为范围字符,输出以west开始以east结束并包含west east的行。
& s/love/**&**/ &表示替换前面的匹配部分
sed - n 's//(word)/)xxx//1ianne/p' file ()标记一个字符为id,后面用id来替代
sed 's#3#88#g' datafile s命令后面可以跟任意字符作为分隔符,换行符和反斜/除外。
sed 'Lewis/{ s/Lewis/John/;q; }' datafile 替换后退出,多个命令用{}括起,前有留有空格
sed例子
sed .... filex > temp;mv temp filex
sed -n '/west/,/east/s/$/**VACA**/' datafile
sed -e '1,3d' -e 's/He/Jo/' datafile
sed '/Suan/r newfile' datafile
sed -n '/north/w 123' datafile
sed '/^north/a/---boobooke---' datafile
sed '/^east/i/---boobooke---' datafile
sed '/eastern/c/---boobooke---' datafile
sed '/eastern/{ n;s/AM/Archie/; }' datafile
sed '1,3y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/ datafile
sed '5q' datafile
sed 'Lewis/{ s/Lewis/John/;q; }' datafile
sed -e '/northeast/h' -e '$G' datafile
sed -e '/WE/{ h; d; }' -e '/CT/{G; }' datafile
sed -e '/WE/{ h; d; }' -e '/CT/{g; }' datafile
sed -e '/Pat/h' -e '/Margot/x' datafile
sed -n 'l' datafile
sed -f sedding datafile