2011-07-29 187 views
0

以下命令作品使用通配符预期并改变用户名为abc在sed命令

sed -e 's/username=company_user/username=abc/' Service.properties 

但是,如果用户名是不同的东西比“company_user”等将失败原因显而易见。 如何在这里使用通配符?

+5

用户名后面是什么?试试''/ username =。*/username = abc /''。 – Beta

+1

如果你的sed是GNU sed,那么你可以阅读关于sed [正则表达式](http://www.gnu.org/software/sed/manual/sed.html#Regular-Expressions)和[GNU扩展](http ://www.gnu.org/software/sed/manual/sed.html#Escapes) –

回答

0

这取决于什么是有效的用户名,但这里是一个开始:

sed 's/username=[a-z0-9_]+/username=abc/i' Service.properties 

这将取代由大写或小写字母的任意用户名(注意i在年底,这使得模式的情况下 - 不敏感),数字和/或带“abc”的下划线。如果您需要添加其他字符,只需在[]内添加它们即可。