我需要将“.dev”或“.prd”附加到计算机名称,具体取决于它们所在的域。可以在计算机名称中确定域名,因为它们都遵循相同的模式:hostd (..)用于生产机器的dev机器和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/'
答案 0 :(得分:2)
$ sed '/d/{s/$/\.dev/} ; /p/{s/$/\.prv/}' input
hostd01.dev
hostp03.prv