任何人都可以帮助我理解以下操作。它本质上在做什么。我无法更好地理解。请帮助
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
答案 0 :(得分:-1)
正则表达式^
匹配行首(空字符串),而#&
替换#
和匹配的字符串(无论如何都是空的,因此这里毫无意义且晦涩难懂) ...因此有效地在每行的开头添加了#
。
在这里使用&
完全没有用,但这是一个很好的技巧-在替换中,&
可以让您调出匹配的字符串。因此s/foo/(&)/
将foo
替换为(foo)
,而您无需在替换中重新输入它;对于更复杂的正则表达式,每次匹配都会有所不同,因此这不仅仅是一种方便。
sed
也对此有一个概括,称为反向引用,因此您也可以调用带括号的子表达式。 s/\(.\)\(.\)\(.\)/\3\2\1/
将反转捕获的子字符串,因此foo
=> oof