LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 213|回复: 0

sed编辑器基础

[复制链接]
发表于 2024-1-4 19:03:20 | 显示全部楼层 |阅读模式

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手册,下面介绍几个常用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表