首页 > 代码库 > sed

sed

sed
   非交互式文本编辑器,可以对文本文件和标准输入进行编辑,标准输入包括键盘输入,文件重定向,字符串,变量和来自于管道的文本,sed只对缓冲区的原始文件的副本进行编辑,并不编辑原始文件

 
  常用命令:
    1.删除

        sed ‘2,5d‘ datafile
        #删除第二到第五行
        sed ‘/My/,/You/d‘ datafile
        #删除包含"My"的行到包含"You"的行之间的行
        sed ‘/My/,10d‘ datafile
        #删除包含"My"的行到第十行的内容
        -e 选项表示下一个字符串解析为sed编辑命令
    2.特殊元字符

        \< :词首定位符  /\<my/  匹配包含以my开头的单词的行
        \> 词尾定位符   /my\>/  匹配包含以my结尾的单词的行
        x\{m\}:连续m个x
        x\{m,\}:至少m个x
        x\{m,n\}: 至少m个,但不超过n个x

    3.r命令
       r命令是读命令。sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上
        sed ‘/My/r introduce.txt‘ datafile
     #如果在文件datafile的某一行匹配到模式My,就在该行后读入文件introduce.txt的内容。如果出现My的行不止一行,则在出现My的各行后都读入introduce.txt文件的内容。

    4.sed -i会改变源文件的内容,可以使用重定向符>来捕获文件的输出(注意不能重定向到正在编辑的文件中)

    5.使用单引号可以阻止shell解释编辑指令中特殊字符(比如空格)

sed