sed
概念: sed是一种流式编辑器,他一次只能处理一行数据。处理时,把当前的行内容存储在临时缓冲区中,成为“模式空间”,接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用-i选项。
sed语法格式:
sed [option] "pattern(匹配模式) command(sed命令)" [filename]
常用选项(option):
主要是用来控制sed的处理流程。
所有测试用如下文件:
-n:只打印模式匹配的行
-e:多点编辑,对每行进行处理时,可以有多个"pattern(模式) command(sed命令)"。
-f:将"pattern(模式) command(sed命令)"此部分,写入文件中,指定这个文件执行。
-r:支持扩展正则表达式。
-i:直接修改文件内容。前面的内容都是输出到屏幕上,不会修改源文件。
pattern详解:
sed逐行处理文本,拿到一行内容,先进行匹配,如果满足,才执行命令,如果匹配不上,是不会对该行进行处理。
其中4,5使我们比较常用的。
5:/pattern1/,/pattern2/command
sed命令详解(command):
p:打印匹配行内容。
a:行后追加。
i:行前追加。
w:匹配行写入外部文件中。
d:删除对应的pattern。
s/old/new:将行内第一个old换成new。
s/old/new/g:将行内所有old换成new。
s/old/new/ig:将行内所有old换成new,以及替换时忽略大小写。
s/old/&ing/ig:将行内所有old换成old+ing,以及替换时忽略大小写。&代表old字符串。