У меня есть файл что-то вроде этого
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)
Но как увеличить значение группы?
one way
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()
output
$ ./python.py
hostname ser1
myuser name
passwd secret
group 1235
hostname ser2-xyz
myuser name
passwd secret
group 2345
изменить inplace=0
на inplace=1
для inplace edit.