linux正则表达式2---sed

Stream Editor  字符流编辑器

简称流编辑器。

Sed是操作、过滤和转换文本内容的强大工具。

常用功能有对文件内容快速实现增删改查,其中查询包括过滤和取行(取出指定行)。

语法格式:sed [选项] [sed内置命令字符] [文件]

匹配的内容要放在两个/中间

选项

-n 取消命令的默认输出,只显示匹配处理的行(否则会输出所有)

-i  直接修改文件本身,而不是将修改后的内容展示出来。如果不使用-i只是修改内存中的数据,而不影响磁盘中的文件。

-e 可以指定多个命令

-f 将多条命令写入文件中,再根据文件内容依次执行

sed -f ab.log test.txt

-r 使用扩展正则

内置命令符

a 追加append,在指定行添加一行或多行文本

sed '1,3a新增文本' my.txt    #在1到3行后面各新增一行

d 删除delete,删除匹配的行

i  插入insert,在指定行添加一行或多行文本

p 打印print,打印匹配行的内容,常与-n一起使用

s 替换substitute,s/regexp/replacement/g 用replacement替换regexp匹配的内容

注:不使用g(全局匹配)时,每一行匹配到第一个后就跳到下一行再进行匹配,使用g的话是匹配到行尾。

注:建议这里的 / 替换为 #

这里第二个a没有匹配到是因为 ^a+ 的意思是以一个或多个a开头,这里开头是每行的开头。

只匹配1到3行:sed '1,3s/^a/b/g' 1.txt

原文地址:https://www.cnblogs.com/1016391912pm/p/12866888.html