工作中的机器遵循恒定的命名模式:
主机[域]_[id]
其中,[domain] 是开发计算机的“d”和生产计算机的“p”,[id] 是每台计算机都不同的 2 位字符串。例如:“hostp_a1”或“hostd_g5”。
现在,由于新的公司政策,我们已将两个域分开,并且必须为开发计算机附加后缀“.dev”,为生产计算机附加后缀“.prd”。我以前的机器现在称为“hostp_a1.prd”和“hostd_g5.dev”
我不想改变我的旧习惯,所以我想知道 Ksh 是否有办法动态地为我做到这一点。这是一个可以为我完成此操作的 sed 脚本:
sed -e 's/host\([dp]\)_\(..\)/host\1_\2.\1/' -e 's/p$/prd/' -e 's/d$/dev/'
以下是我想到的一些解决方案:
正则表达式别名:
如果我能做类似的事情
alias host[dp]_..='....
。触发器:
每次输入命令时触发器都会执行 sed。可能会有点影响性能,但我不在乎,因为它只是交互式的。
Ksh 有什么办法可以做到这一点吗?我使用旧版本可能没有帮助Version M-11/16/88i
。也许其他 shell 可以做到这一点?
(只要我们这样做,我目前正在学习,sed
所以如果有人有更好的 sed 命令建议,请这样做。谢谢)。