sed编辑器基础
sed是非交互式的面向数据流的编辑器。使用sed可以做如下操作:
自动化的编辑一个或多个文件
简化在多个文件中执行相同编辑的任务
编写转换程序
sed同时只能编辑一行
基本的sed编辑命令
调用sed命令的语法有两种:在命令行指定sed指令,或者将sed指令放入一个文件中并将其文件名作为参数,语法如下:
sed [OPTIONS]… ‘COMMAND’ [FILE]…
sed [OPTIONS] -f SCRIPTFILE [FILE]…
sed命令有如下常用的选项
-e告诉sed将下一个参数解释为sed指令,只有在命令行上给出多个sed指令时才需要使用-e选项
-f指定由sed指令促成的脚本的名称,如果sed脚本的第一行为”#n”,则sed的行为与指定-n选项相同
-i直接修改读取的内容,而不是输出到终端
-n取消默认输出。在一般sed用法中,所有来自标准输入的数据一般都会被显示到终端,使用-n参数后,只有经过sed处理的行才会被显示输出。
sed指令的语法形式如下:
[address[,address]][!]command
sed指令由地址和编辑命令组成,其中编辑命令是可选的。它可以是一个模式,被描述为由斜杠、行号或行寻址符号括住的正则表达式。大多数sed命令能接收由逗号分隔的两个地址,这两个地址用来标识行的范围,这些指令的语法格式如下:
[address1,address2]command
有些编辑命令只接收单个地址,不能应用于某个范围的行,语法格式为
[line-address]command
编辑命令还可以用大括号进行分组以使其作用于同一个地址,期语法格式为:
address {
command1
command2
command3
}
上述命令中,第一个命令command1可以与左大括号在同一行,右大括号必须自己单独处于一行。如果命令之间用分号分隔,那么可以将多个sed命令放在同一行,但是不建议这么做。
sed编辑命令有24个,详细信息可以参考sed的man手册,下面介绍几个常用的。 |