Regex(sed):如何根据变量形成替换模式?
我需要将“.dev”或“.prd”附加到计算机名称,具体取决于它们所在的域。域可以在计算机名称中确定,因为它们都遵循相同的模式:hostd(.. ) 用于开发机器,hostp(..) 用于生产机器。
这是我想要的一个例子:
=============================
| input | output |
|=============|=============|
| hostd01 | hostd01.dev |
|-------------|-------------|
| hostp03 | hostp03.prd |
=============================
我是 sed 的新手,所以我不知道我找到的解决方案有多优雅(如下)。 难道没有一种方法可以在一行中完成吗?
sed -e 's/\([dp]\)\(..\)/\1\2.\1/'
-e 's/d$/dev/'
-e 's/p$/prd/'
I need to append a ".dev" or a ".prd" to a machine name depending on which domain they're in. The domain can be determined in the machine name, since they all follow the same pattern: hostd(..) for dev machines and hostp(..) for production machines.
Here's an example of what I want:
=============================
| input | output |
|=============|=============|
| hostd01 | hostd01.dev |
|-------------|-------------|
| hostp03 | hostp03.prd |
=============================
I'm new to sed, so I don't know how elegant is the solution I found (below).
Isn't there a way to do it in one line?
sed -e 's/\([dp]\)\(..\)/\1\2.\1/'
-e 's/d$/dev/'
-e 's/p$/prd/'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)