困惑! Sed中的角色

时间:2013-09-24 18:12:41

标签: bash sed

这两个sed命令的行为似乎相同:

$ sed "s/^replace=*/replace=mytest/g" test.txt 

$ sed "
  s!^replace=*!replace=mytest!g
" test.txt

这是为什么?可以使用!字符代替/吗?我没有在sed文档中看到!字符的那么多解释。

1 个答案:

答案 0 :(得分:3)

你应该更仔细阅读man-pages:)

info sed

  

3.5命令

     

s(在替换中)命令的语法是's / regexp / replacement / flags'。 /字符可以由任何给定s命令中的任何其他单个字符统一替换。 /字符(或其他任何字符代替它)只有在前面带有\字符时才会出现在regexp或replacement中。

TL;博士

正如这些手册页中所述,您可以使用任何单个字符作为sed regexpreplacement的分隔符。

编辑: 感谢Evil Otto用于清除水晶:)