我有类似这样的文件
hostname ser1-xyz
myuser name
passwd secret
group 1234
hostname ser2-xyz
myuser name
passwd secret
group 2345
我需要找到名为“ser1-xyz”的主机首次出现并将其修改为 “ser1”并将组值增加1
所以最终文件如下:
hostname ser1
myuser name
passwd secret
group 1235
hostname ser2-xyz
myuser name
passwd secret
group 2345
目前我正在关注代码,可以将“ser1-xyz”修改为“ser1”
for line in fileinput.FileInput(fn,inplace=1):
line = line.replace(search,replace)
但是如何增加组值?
答案 0 :(得分:2)
单程
import fileinput
f=0
for line in fileinput.input("file",inplace=0):
if "hostname" in line and "ser1-xyz" in line:
line=line.replace("ser1-xyz","ser1")
f=1
if f and "group" in line:
a=line.rstrip().split(" ")
a[-1]=str(int(a[-1])+1)
line=' '.join(a)
f=0
print line.rstrip()
输出
$ ./python.py
hostname ser1
myuser name
passwd secret
group 1235
hostname ser2-xyz
myuser name
passwd secret
group 2345
将inplace=0
更改为inplace=1
以进行就地编辑。