sed命令格式 一个可选的的地址或者地址范围,后面跟着一个或一些命令字。
1.0 常用选项
-n quietly silcent
-e one or more action
-r regrexp-externed
1.1 地址
number
$
/regrexp/ "/"是分割匹配的分割符,可以用其他的分割符,向下面的\%
\%regrexp% 指定其他的分割符,%指其他任意的分割符
地址范围用两个地址,中间用逗号隔开
1.2 sed有两个buffer
patter space : 平时从文件或者输入读取的数据就放在patter space里
还有一个可选用的hold space
1.3 常用的命令字
1.3.1 s/regexp/replacement/flags
1.3.1.1 replacement 可以使用\1 \2 \3等形式,表示regexp的匹配顺序
还可以使用\&
1.3.1.2 flag 可以包含这些东西:
g
p
number 只有numberTH个匹配项需要代替
w file-name 将替换的写入file-name中
1.3.2 q
1.3.3 d
删除当前模式空间内容(不在传至标准输出),并放弃之后的命令,并对新读取的内容,重头执行sed
1.3.4 p
1.3.5 n
1.3.6 {commands}
一组命令
1.4 不常用的命令
1.4.1 D
D命令是删除当前模式空间开端至\n的内容(不在传至标准输出),放弃之后的命令,但是对剩余模式空间重新
执行sed
1.4.2 P
P打印当前模式空间开端至\n的内容
1.4.3 N
N命令简单来说就是追加下一行到模式空间,同时将两行看做一行,但是两行之间依然含有\n换行符,如果命令未
执行成功(并非跳过:前端条件不匹配),则放弃之后任何命令,并对新读取的内容,重头执行sed
1.4.4 y/source_chars/dest_chars/
y命令的作用在于字符转换
1.4.5 h命令,H命令,g命令,G命令
h命令是将当前模式空间中内容覆盖至保持空间,H命令是将当前模式空间中的内容追加至保持空间
g命令是将当前保持空间中内容覆盖至模式空间,G命令是将当前保持空间中的内容追加至模式空间
1.4.6 x命令
x命令是将当前保持空间和模式空间内容互换
1.4.7 i\ a\ c\
a\ 新增a\紧跟的data到匹配的行后面, 如果紧跟多行,除最后一行外,其他行用\结尾
只能指定一行
i\ 插入i\紧跟的data到匹配的行前面, 如果紧跟多行,除最后一行外,其他行用\结尾
只能指定一行
c\ 将匹配的行替换成c\后面紧跟的data,如果紧跟多长,除最后一行外,其他行用\结尾
可以指定某个范围内的行
1.4.8 r filename
在匹配到某行后,插入filename文件的内容到该行后
1.4.9 w filename
将匹配到的行 写到filename文件中,filename的内容被覆盖
1.4.10 流程控制命令 lable b(branch)t(test)
:lable;
b lable; 无条件跳到label处理
t lable; test是true才跳到lable处理