分类: LINUX
2010-03-25 04:29:28
Sed语法
Sed [-n] ‘editing command ‘ [ file……….]
Sed [-n] -e ‘editing command ‘ ……. [ file ….. ]
Sed [-n] –f script-file ……….. [ file………]
Sed 常用选项
-n sed 默认在将下一行读入行缓冲区之前,自动输出缓冲区中的内容,些选项可以关闭自动输出
-e 如果命令行上调用多个sed_cmd,必须在每条sed_cmd前加“-e“ 选项
Eg: sed -e ‘sed_cmd
Sed_cmd 格式 : ‘[address] sed_edit_cmd’ (一般用单引号括起来)
Address :sed 的行定位模式,用于指定要被编辑的行
Sed_edit_cmd: 对被编辑行将要进行的编辑操作
Sed_cmd 的address 用于定位要编辑的行
X :x 为行号
X,y :表示行号的范围
/pattern/ :查询包含模式的行
X,/pattern/ :在指定的行号上查询包含模式的行
X,y! :查询不包含指定行号x和y的行
常见的sed_edit_cmd
1) P :打印匹配的行
2) = :显示文本匹配行的行号
3) a\ :在指定行(不能是多行范围)后附加N行新文本并显示新文本,多用于脚本
4) i\ :在指定行前插入新文本并显示新文本,格式同a\
5) d :删除被指定的行
6) c\ :用新文本替换被定位文本行并显示新文本 ,格式同 a\
7) s :替换内容
替换选项如下:
g :缺省情况下只匹配行中第一次出现的oldpattern ,使用g选项替换行全局中所有出现oldpattern
w filename :将被替换后的行内容写到文件filename中
p :显示被替换后的行,省略p并使用了sed –n 选项,将看不到任何输出
如果要附加或修改一个字符串,可以&命令,&命令保存模式 oldpattern以便重新调用它,并把它放在替换字符串里面
8)r :从另一个文件中读文本附加到指定的行后,并显示读入的文本内容
9)w :写文本到一个文件
10)q :读取到address 定位的行后退出sed,以便执行其它处理脚本
11)l :显示被定位行中的所有字符,包括控制字符
12){} :在被定位的行上执行的命令组
13)n :从另一个文件中读文本下一行,并附加在下一行
p 、 = 、 w 例子如下:
& 和g 的例子如下:
r 和l 的例子如下:
{ } 例子如下
虽然/是最常用的定界符,但任何可显示的字符都可以作为定界符。在处理文件名称时,通常都会以标点作为定界符(如分号; 冒号:或逗号,)