2010-04-05 75 views
2
sed 's/^\(\h*\)\(.*\)$/\1<!-- \2 -->/' web.xml 

我认为这应该采取这种XML:正则表达式:反向引用

<a> 
    <d> 
    bla 
    </d> 
</a> 

,把它变成:

<!-- <a> --> 
    <!-- <d> --> 
    <!-- bla --> 
    <!-- </d> --> 
<!-- </a> --> 

但什么是做的是这样的:

<!-- <a> --> 
<!-- <d> --> 
<!--  bla --> 
<!-- </d> --> 
<!-- </a> --> 

回答

1

使用[ \t]*代替\h*,就像这样:

sed 's/^\([ \t]*\)\(.*\)$/\1<!-- \2 -->/' web.xml 

Here的sed中的逃跑的列表(元)字符。

+0

嗯,你是对的。这工作。为什么没有工作?它不被sed支持吗? – sixtyfootersdude 2010-04-05 16:35:35

+0

也许只是在perl – sixtyfootersdude 2010-04-05 16:36:15

+0

是的,sed的正则表达式支持是非常基本的。大多数正则表达式引擎支持元字符'\ s'和类'[:space:]'为空白。 – 2010-04-05 16:39:05

相关问题