sed:Stream EDitor
行编辑器
语法:sed [OPTION]... {script-only-if-no-other-script} [input-file]...
常用选项:
-n, --quiet, --silent:使用安静(silent)模式。在一般 sed 的用法中,所有来自STDIN的资 料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动 作)才会被列出来。
-e script, --expression=script:多点编辑
-f script-file, --file=script-file
-f /path/to/script-file:直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r, --regexp-extended:支持使用扩展正则表达式
-i :直接在原文件里编辑
地址定界:
(1) 不给地址:对全文进行处理
(2) 单地址:# :第#行
/pattern/:被pattern匹配到的每一行
(3) 地址范围:#,# : 第#到#
#,+#:第#到其后面#行
/pat1/,/pat2/:从pattern1匹配到的至pat2匹配到的行
#,/pat/:第#行到pat匹配到的行
编辑命令:
d :删除
p :打印 ,sed默认会将符合条件的行显示,所以只使用p会输出两次匹配行
a text :在每个符合条件的行后面追加text,支持使用\n实现多行追加
i text : 在行前面插入文本,支持使用\n实现多行插入
c text :替换符合条件的多行文本
w filename :将符合条件的内容另存为filename
r filename :将filename中的内容读取到符合条件的行后面
= : 显示符合条件的行的行号
!: 条件取反
s/查找/替换/ : 查找替换( 也可使用s@@@ s### )
替换标记:g:glob行内全局替换,默认为替换第一个
s/查找/&替换/ : &:引用查找条件符合的变量
示例:
-n,p:打印/etc/fstab文件的第8到9行,单独使用"p"命令匹配到的行会出现两次,同"-n"同 时使用,则只打印匹配行
-e:一行命令中可执行多次"-e"选项,进行多次编辑。删除/etc/fstab文件中1到3行和8到10行。
-f,a text:将a text编辑命令写入sedtest文件内,使用"-f"选项引用sedtest文件执行符合 条件的每行后追加text内容
-i:直接在原文件里编辑
i text /ntext1:实现在行前面插入多个文本
c text:替换符合条件的行为text
w filename:将符合条件的内容另存为filename
r filname:将filename中的内容读取到符合条件的行后面
= : 显示符合条件的行的行号
!: 条件取反:条件为上例条件,则显示符合条件之后所有行的行号。
s/查找/替换/ : 查找替换( 也可使用s@@@ s### ):将“UUID”字符替换为“armo”
高级编辑命令:
h:把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g:从保持空间取出数据覆盖至模式空间
G:从保持空间取出数据追加至模式空间
x:把模式空间中的内容与保持空间中的内容进行互换
n:读取匹配到的行的下一行到模式空间
N:追加匹配到的行的下一行到模式空间
d:删除模式空间中的行
D:删除多行模式空间中的所有行