文本编辑命令——sed

  sed命令作为一种流编辑器,以行为单位对一个或多个文件进行编辑,在sed处理文本时,会将文本放到一个模式空间当中,如果当前行能够匹配sed命令所给出的PATTERN则用命令进行处理,如果不能匹配则默认情况下标准输出;文件内容默认情况下不会改变;

  sed命令:

  sed [OPTION]...‘script’  [input-file]...

  常用选项:

  -n:安静模式,默认不匹配的行不输出到屏幕上;

  -e script:多条件输出,一个e选项可以配合一个script;

  -i:将修改的内容直接写进原文件;

  -r:支持扩展的正则表达式;

  

  script由两部分组成:Address与Command两者之间不能有空格存在;即AddressCommand;

  Address:

  1.当地值为空时则表示对当前所有文件进行操作;

  2.单地址,指定行号num时,只对当前行进行操作,或者/PATTERN/指能够匹配该模式的第一行,对该行进行操作;

  3.地址范围:

  ①addr1,addr2:从addr1开始到addr2结束的中间所有行,包括addr1和addr2;

  ②first~step:由标记first开始到step为止;

  ③add1,+N:由add1行开始,并计算向后N行;

  ④addr1,~N:从addr1开始,包括addr1所在行,向后计算addr1*N行;

  例如:2,~5相当于2,2*5

  ⑤/PATTERN1/,/PATTERN2/

  从被pattern1匹配的第一行开始计算,一直到被pattern2匹配的第一行结束;


  Command:

  =:先是被模式匹配行的行号;

  a \test:在所匹配行的下一行添加test文本,支持使用\n选项;

  i \test:在所匹配行的上一行添加test文本,支持使用\n选项;

  c \test:将所匹配行用test进行替换,支持使用\n选项;

  d:将在模式空间中匹配的行删除,不在显示输出,d选项通常不搭配-n选项;

  p:将在模式空间匹配的行输出,p选项通常搭配-n选项;

  w filepath:被能够匹配的行另存到一个文件里去;

  r filepath:将filepath中的内容追加到模式空间中被模式匹配的行之后;

  !COMMAND:在模式空间中匹配的行不输出,不匹配的行输出;

  s///:查找替换,“/”可以随意分配三个一模一样的符号,视情况而定;

  s/pattern/text/[control]

  pattern:计划查找并替换内容;

  text:要替换的结果

  control:如何进行替换;

  g:行内全部替换;

  p:显示替换成功的行;

  如

  s@/etc/fstab@/etc/mtab@:将字符/etc/fstab替换为/etc/mtab;

  

  sed命令示范:

  加-n与不加-n:采用指定单地址的方式

  wKiom1kuHXuQUHL2AAAZv4kNbxQ825.png-wh_50

  -e:

  wKioL1kuHcWhujAUAAAOCEGikDQ374.png-wh_50

  -r:取出当前路径的基名,用基民替换当前路径

  wKioL1kuHiCS2FSOAAAKHboXpyw185.png-wh_50

  -i:将修改写入文件;

  wKiom1kuIevAMzLXAAAWJYoC8pQ889.png-wh_50

  采用多地址方式:add1,add2

  wKioL1kuHpbCYBa-AAANd_o0knE446.png-wh_50

  add1,+N

  wKioL1kuHs3jTYeFAAAOPpk5aTg728.png-wh_50

  /PATTERN/,/PATTERN/匹配:

  wKiom1kuHxOTVzpvAAAOl-n__W0238.png-wh_50

  p:将在模式空间匹配的行输出;加-n与不加-n;

  wKiom1kuH4XhDvf_AAAVuSxQkgM471.png-wh_50

  d:删除模式空间匹配的行;d选项的使用不加-n;

  wKioL1kuH86QpDyjAAAJm8yMuOM034.png-wh_50

  w file:将模式匹配的内容保存到另一个文件当中;

  wKiom1kuIFujFXB2AAAR5CbhchE785.png-wh_50

  s///:查找替换,将文件中开头为#且后面有空格的匹配字符删去;

  wKioL1kuIXOwzS5AAAAVEEj8HCk323.png-wh_50


本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/1930809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值