我有一个文件,其中所有服务器都列为Dominos_A
。
除第一场比赛外,是否可以将Dominos_A
更改为Dominos_B
,Dominos_C
?
FILEA:
..
....
.....
Server = Dominos_A.check
..
.
Server = Dominos_A.check
Server = Dominos_A.check
..
.
Server = Dominos_A.check
到
FILEA:
..
....
.....
Server = Dominos_A.check
..
.
Server = Dominos_B.check
Server = Dominos_C.check
..
.
Server = Dominos_D.check
..
我尝试使用substr
,但仍然无法进行更改。
答案 0 :(得分:4)
如果你的上一次出现不超过Z
个字母,你可以
perl -i -pe'
BEGIN{ @r = "A" .. "Z" }
s|Dominos_\K\w| shift @r |e;
# for perl 5.8 or older
# s|(Dominos_)\w| $1 . shift @r |e;
' FileA
答案 1 :(得分:1)
@ mpapec ..遗憾的是,这不适用于我的带有perl v5.8.4的solaris盒。
所以我写了一个对我有用的略有不同。
> perl -pe 'BEGIN{@r="A".."Z";$i=0}s/(Dominos_)A/$1$r[$i++]/g' temp
..
....
.....
Server = Dominos_A.check
..
.
Server = Dominos_B.check
Server = Dominos_C.check
..
.
Server = Dominos_D.check
>