sed基本命令
sed命令的语法
行地址对于任何命令都是可选的。它可以使一个模式,被描述为由斜杠、行号或行寻址符号括住的正则表达式。大多数 sed 命令能接受由逗号分隔的两个地址,这两个地址,这两个地址用来标识行的范围。这些命令的语法格式为:
address]command
有一些命令只接受单个行地址。它们不能应用于某个范围的行。它们的语法格式为:
[line-address]command
还可以用大括号进行分组以使其作用于同一个地址:
替换
详细用法:[address]s/pattern/replacement/flags这里修饰替换的标志 flags 是:
n 1到 512之间的一个数字,表示对文本模式中指定模式第 n 次出现的情况进行替换
g 对模式空间的所有出现的情况进行全局更改。而没有g是通常只有第一次出现的情况被取代。
p 打印模式空间的内容。
W file
将模式空间的内容写到文件 file 中。
Replacement是一个字符串,用来替换与正则表达式匹配的内容(参见第三章中的“匹配的范围“一节)。在replacement部分,只用下列字符有特殊含义:
& 用正则表达式匹配的内容进行替换。
\n 匹配第n个字串(n是一个数字),这个字串以前在pattern 中用“\(“和“\)“指定。
\ 当在替换部分包含“与“符号(&),反斜杠(\)和替换命令的定界符时可用\转义它们。另外,它用于转义换行符并创建多行replacement字符串。
替换元字符
替换元字符是反斜杠 ()、“与”符号 (&)和n。反斜杠一般用于转义其他的元字符,但是他在替换字符串中也用于包含换行符。
校正索引条目
创建索引的第一步是在文档中放置索引代码。使用命名为.xx的索引宏,它采用单个参数,即索引条目。样本索引条目:
XX"sed, substitution command"
删除
用命令d
追加、插入和更改
追加 a
追加[line-address]a\
text
插入 i
插入[line-address]i
text
更改 c
更改[address]c
text
$是行寻址符号,用于匹配文件的最后一行
列表
列表命令 l 用于显示模式空间的内容,将非打印的字符显示为两个数字的ASCII代码
打印
打印命令 p 输出模式空间的内容。既不清除模式空间也不改变脚本中的控制流
改变流控制命令 d N b
抑制默认的输出 n
高级sed命令
多行模式空间
d删除模式空间的内容
D删除多行模式空间的第一行
追加下一行
多行Next命令通过读取新的输入行,并将其添加到模式空间的现有内容之后来创建多行模式空间