Linux工具--sed

sed–流式编辑器,是一种用来处理文本的工具
特点:
(1)sed命令不会修改源文件
(2)一次只处理一行内容
处理时,将当前的行放入临时缓冲区,这个临时缓冲区称为“模式空间”

过程:把当前处理的行存放在临时缓冲区,接着用sed命令处理缓冲区中的内容,处理完成后把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。
注:sed默认按照Basic规范匹配

编辑命令的格式为: /pattern/action patttern是正则表达式,action是编辑操作

1、pattern/p 打印匹配pattern的行
除了打印文件内容之外,还打印匹配pattern的行
Linux工具--sed

2、 pattern/d 删除匹配pattern的行
Linux工具--sed
删除该行只是表示该行不会被输出,而不是在源文件中被删除

3、/pattern/s/pattern1/pattern2 查找匹配pattern的行,将该行第一个pattern1替换为pattern2
4、/pattern/s/pattern1/pattern2/g 将所有的pattern1替换为pattern2
还可以有这种表示:/pattern1/&/ 这里的&代表pattern1
Linux工具--sed

5、-n 只打印匹配的行
Linux工具--sed

6、 -i 写入源文件
Linux工具--sed

7、定址 定址用于决定对哪些行进行编辑,地址可以是数字、正则表达式或二者的结合,如果没有指定地址,sed将处理文件的所有行。
Linux工具--sed
地址以“,”做分隔符,需要处理的是这两行之间的内容,包括这两行。

模式空间&&保持空间
模式空间:相当工厂里的流水线,数据直接在上面进行处理
保持空间:相当于仓库,进行数据处理的时候,作为数据的暂存区

特点:
(1)正常情况下,保持空间不会被使用
(2)对数据加工、处理只能在模式空间,保持空间只用于存储

sed命令:
g:保持空间里的内容拷贝到模式空间,覆盖式
G:方法与g一致,追加式拷贝

h:模式空间里的内容拷贝到保持空间,覆盖式
H:追加式拷贝

x:交换空间里的内容

例:
打印奇偶行
Linux工具--sed

1~100求和
Linux工具--sed