sed命令
在脚本中应用命令:
替换命令
s/pig/cow/g
s/cow/horse/g
模式空间
sed维护一种模式空间,即一个工作区或者临时缓冲区,当应用编辑命令时,将在那里存储单个输入行。
注意:一次一行的设计的一个优点是sed在读取非常大的文件时不会出现问题。屏幕编辑程序必须将整个文件读入内存,这将会产生内存溢出或者在处理庞大的文件时速度非常慢。
寻址上的全局透视
sed是隐式全局的,例如下面的替换命令,将每个"CA"替换成"California"
s/CA/Californai/g
我们也可以限制只对包含"Sebastopol"的行才将"CA"替换为"California"
Sebastopol/s/CA/California/g
由“Sebastopol”“CA”组成的输入行将匹配这个地址,并且应用替换命令将他替换为“Sebastopol”“California”. 右“San Fracicso”“CA”组成的行不会被匹配,而且不会应用替换命令。
sed命令可以指定零个、一个或两个地址。每个地址都是一个描述模式。行号或者行寻址符号的正则表达式。
注意:
1、如果没有指定地址,那么命令将应用于每一行。
2、如果只有一个地址,那么命令应用于与这个地址匹配的任意行。
3、如果指定了由逗号分隔的两个地址,那么命令应用于匹配第一个地址的第一行,和他后面的行,直到匹配第二个地址的行。
4、如果地址后面跟有感叹号(!),那么命令就应用于不匹配该地址的所有行。
原文:http://yanruohan.blog.51cto.com/9740053/1902746