sed命令

来源:互联网 发布:淘宝店铺的客服电话 编辑:程序博客网 时间:2024/06/13 16:52

#这次只对常用的东西进行总结,sed的东西实在太多了,而且有些东西并不经常用到


【选项】

   -i  将处理结果直接写入文件

   -n 静默模式,仅显示被处理过的结果

   -e 多点编辑

【内置命令】

   s  字符串替换

   d  删除被匹配的行

   a 在选定行下面插入文本

   i  在选定行上面插入文本

  c  将选定行替换为新文本

【sed元字符】

  ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。
  $ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。
  . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。
  * 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。
  [] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。
  [^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。
  \(..\) 匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。
  & 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。
  \< 匹配单词的开始,/>匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。
  x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。 
  x\{m,\} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有5个0的行。
  x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行。

【】

【命令示例】

在示例中我们用到的例子

[lyf@test comm_test]$ cat sed_test lyflyflyf123stysty123stystylyf



1.替换

    匹配‘lyf’,并替换为‘lyfs’

[lyf@test comm_test]$ sed  's#.*\(lyf\).*#\1s#g' sed_test lyfslyfslyfsstysty123stylyfs
有点小题大做,用到了子串匹配,但是这在实际应用中很常见

2.添加文本

    在匹配行之前插入文本

[lyf@test comm_test]$ sed  '/lyf/i new_line' sed_test new_linelyfnew_linelyfnew_linelyf123stysty123stynew_linestylyf

    

在匹配行之后插入文本

lyf@test comm_test]$ sed  '/lyf/a new_line' sed_test lyfnew_linelyfnew_linelyf123new_linestysty123stystylyfnew_line

将匹配行替换为新文本

[lyf@test comm_test]$ sed '/lyf/c new_line ' sed_test new_line new_line new_line stysty123stynew_line 







0 0
原创粉丝点击