linux管理-需要对SED进行一些说明

时间:2018-08-01 06:03:38

标签: linux sed

任何人都可以帮助我理解以下操作。它本质上在做什么。我无法更好地理解。请帮助

 sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf 

1 个答案:

答案 0 :(得分:-1)

正则表达式^匹配行首(空字符串),而#&替换#和匹配的字符串(无论如何都是空的,因此这里毫无意义且晦涩难懂) ...因此有效地在每行的开头添加了#

在这里使用&完全没有用,但这是一个很好的技巧-在替换中,&可以让您调出匹配的字符串。因此s/foo/(&)/foo替换为(foo),而您无需在替换中重新输入它;对于更复杂的正则表达式,每次匹配都会有所不同,因此这不仅仅是一种方便。

sed也对此有一个概括,称为反向引用,因此您也可以调用带括号的子表达式。 s/\(.\)\(.\)\(.\)/\3\2\1/将反转捕获的子字符串,因此foo => oof