Datei Manipulation und finden Sie ein Wort und knifflige ersetzen

Ich habe so etwas so

hostname ser1-xyz myuser name passwd secret group 1234 hostname ser2-xyz myuser name passwd secret group 2345 

Ich muss die erste Auflage des Hosts mit dem Namen "ser1-xyz" finden und ihn als "ser1" ändern und den Gruppenwert um 1 erhöhen

So dass die endgültige Datei aussieht:

 hostname ser1 myuser name passwd secret group 1235 hostname ser2-xyz myuser name passwd secret group 2345 

Momentan folge ich Code, der die "ser1-xyz" in "ser1" ändern kann

  for line in fileinput.FileInput(fn,inplace=1): line = line.replace(search,replace) 

Aber wie kann man den Gruppenwert erhöhen?

One Solution collect form web for “Datei Manipulation und finden Sie ein Wort und knifflige ersetzen”

Einweg

 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() 

Ausgabe

 $ ./python.py hostname ser1 myuser name passwd secret group 1235 hostname ser2-xyz myuser name passwd secret group 2345 

Änderung inplace=0 zu inplace=1 für inplace edit.

  • Ersetzen Sie einmalige Werte von pandas data-frame
  • Wie suche ich nach IPs in Dateien mit Python?
  • Python, ersetzen Sie den langen Strich mit kurzem Strich?
  • Wie man eine zufällige Telefonnummer aus einer Zahl in Wörter aus Wörterbüchern umwandelt und wie man sie aus einem Text auswählt und sie in Python umwandelt?
  • Gleichzeitige Funktion
  • Umbenennen von Spalten in Pandas
  • Iterieren eines Strings und Ersetzen eines Elements in Python
  • Wie man bedingten Charakter Ersatz in einem String zu tun
  • Ersetzen Sie Strings in Dateien von Python
  • Wie lösche ich alle Instanzen eines Zeichens in einer Zeichenkette in Python?
  • Massenstring in Python ersetzen?
  • Python ist die beste Programmiersprache der Welt.