第一天:sed

原创
2014/04/15 22:37
阅读数 194
第一天:sed
       sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
    定址: 用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如 1 3 表示 1 2 3 行,美元符号($)表示最后一行。
  调用sed命令有两种形式:
                    1>  sed [options]  'command'  file(s)
                    2>  sed [options] -f scriptfile file(s)
   选项 [options]:
               -e command , --expression=command      多点编辑      -n 行数
  命令 'command'
       删除:d命令          替换:s命令     g   行内全面替换    p  打印模板块的行    从文件读入 :r命令
       w file  写并追加模板块到file末尾    W file   写并追加模板块的第一行到file末尾
       a\  在当前行后面加入一行文本    i\   在当前行上面插入文本
       n   读取下一个输入行,用下一个命令处理新的行而不是用第一个命令
      y表示把一个字符翻译为另外的字符(但是不用于正则表达式)
       退出:q命令 
      h  拷贝模板块的内容到内存中的缓冲区   获得内存缓冲区的内容,并追加到当前模板块文本的后面
      x表示互换模板块中的文本和缓冲区中的文本。
   元字符集:
       ^: 锚定行的开始  $: 锚定行的结束  &: 保存搜索字符用来替换其他字符,如s/love/**&**/ ,love这成**love**。
       \(..\): 保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers
  例子:
       sed  's/test/mytest/g'  example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test
       sed -n  's/^test/mytest/p'  example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行
       sed  's/^192.168.0.1/&localhost/'  example-----&符号表示替换换字符串中被找到的部份
      sed --expression= 's/test/check/'  --expression= '/love/d'  example-----一个比-e更好的命令是--expression
           它能给sed表达式赋值
       sed  '/test/{ n; s/aa/bb/; }'  example
       $ sed -e  '/test/h'  -e '$G example 在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行 被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。接着模式空间被清空,并存入新的一行等待处理。在这个例子里,匹 配test的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保 持缓存区的特殊缓冲区内。第二条语句的意思是,当到达最 后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中 的行的末尾。在这个例子中就 是追加到最后一行。简单来说,任何包含test的行都被复制并追加到该文件的末尾
展开阅读全文
加载中

作者的其它热门文章

打赏
0
2 收藏
分享
打赏
2 评论
2 收藏
0
分享
返回顶部
顶部