sed总结

sed命令行格式为:
         sed [选项]  ‘定址command’  文件        

常用选项:
     

        -n∶取消默认的输出,使用安静(silent)模式。只有经过sed 特殊处理才会被列出来
        -e∶进行多项编辑,一般用分号可以替代。
        -f∶指定sed脚本的文件名.-r∶扩展正则表达式+,?,|,()
        -i∶直接修改读取的文件内容,而不是由屏幕输出 
        -i.bak   生成源文件.bak备份文件,并直接修改源文件 

    

常用命令:
      

i ∶ 插入, 在指定行前插入,(i ext)
a ∶ 新增, 在指定行后新增,(a ext)
c ∶ 替换, 将指定行替换 ,(c ext)
s ∶ 替换, 1,20s/old/new/g
y : 转换 y/old/new/ 字符对应转换,是每个字符转换,不是单词。
n : 读取下一行,下一行不会被再次读取。
d : 删除,因为是删除,所以 d 后面通常不接任何内容,因为后面的指令不会被执行。
r : 读取文件内容到指定行 r file
w : 保存内容到file
q : 退出,避免读取过多的无用行。
p : 列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起用
l : 打印行显示控制字符
= : 打印行号


定址

定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。
地址是一个数字,则表示行号;是“$"符号,则表示最后一行. 地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。范围可以用数字、正则表达式、或二者的组合表示。
 
         N   #第N行
        N,M  #第N到M行
        $    #最后一行
   /RegExp/  #正则匹配到的行
/RegExp/,/RegExp/ # /1^/,/2^/

 高级指令

 

N  #将下一行读入模式空间,用
连接两行
D  #删除模式空间第一行内容,并继续执行编辑指令
P  #打印模式空间第一行内容

 sed的保持空间(Hold Space)

    h   #将模式空间内容复制到保持空间
    H   #将模式空间内容追加到保持空间
    g   #将保持空间内容复制到模式空间
    G   #将保持空间内容追加到模式空间
    x   #交换保持空间和模式空间的内容
原文地址:https://www.cnblogs.com/naodong/p/6000673.html