управление файлом и находит слово и хитрую замену

У меня есть файл что-то вроде этого

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)

Но как увеличить значение группы?

1
задан webminal.org 22 February 2010 в 09:49
поделиться

1 ответ

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.

2
ответ дан 3 September 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: