sed用法

       sed(stream editor )是流编辑器,他是一个将一系列编辑命令作用于一批文本文件的理想工具。

        sed适用于以下三种场合:

        1    编辑相对交互式文本编辑器而言太大的文件

        2    编辑命令太复杂,在交互式文本编辑器中难以输入的情况

        3    对文件扫描一遍,但是需要执行多个编辑函数的情况

 

        在文本指定位置追\替换内容

        格式:sed '指定地址(a|i|c) \text'   文件名

        sed用法_第1张图片

        

        !符号表示取反,x,y!表示匹配不在x和y行号范围内的行,!符号不能用于关键字匹配

        sed -n '1,3!p' text.txt

        使用行号与关键字匹配限定行范围

        sed -n '/yao/,$p'  test.txt              打印与yao的匹配行到最后一行     

        删除文本的空行

         sed -i '/^$/d' test.txt 

 

        sed缓冲区介绍

        sed命令将输入文件复制到缓冲区,对缓冲区中的复制内容处理后,将其写入输出文件。实际上,sed有两种缓冲区:模式缓冲区(pattern space)和保持缓冲区(hold space)。sed的一些命令可以对保持缓冲区进行处理,并与模式缓冲区的内容互换。

       h和H  g和G是两组对应的命令:                                                                                                h和H命令是模式缓冲区内容替换保持缓冲区内容,不过h是copy,即将保持缓冲区的旧内容覆盖掉,而H是append,即在保持缓冲区旧内容上增加新的内容。                                                                 g和G命令是保持缓冲区内容替换模式缓冲区内容,同理,g是copy,G是append.

      x是交换pattern space和hold space.   

root@ubuntu:/home/yao/test# sed -i '/dflk/H;/ad23/x;$G' t1.txt 
root@ubuntu:/home/yao/test# cat t1.txt 
dflks
yaoxiabing
hahatihuanbing
123sdf
yaoxiabing
hahatihuanbing
dfjd  dff
yaoxiabing
hahatihuanbing
d
d
f
g
***tihuanbing
yaoxiabing
hahatihuanbing
yaoxiabing
df
yaoxiabing
hahatihuanbing

dflks
ad23 

 



        




你可能感兴趣的:(sed用法)