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.

  • Python-String-Ersatz, wodurch alle möglichen Kombinationen
  • Python ersetzen Sie den Textabschnitt, indem Sie nur den Anfang und das letzte Wort kennen
  • Suchen und ersetzen Sie Text in .docx-Datei - Python
  • Suchen und Ersetzen von Werten in XML mit Python
  • Effizient ersetzen schlechte Zeichen
  • Text-Ersetzen Sie in docx und speichern Sie die geänderte Datei mit python-docx
  • Ersetzen Sie die Werte in der Liste mit Python
  • Was ist der beste Weg, um zu finden und zu ersetzen von mehreren Abfragen auf mehrere Dateien?
  • Beste Weg, um \ x00 in Python-Listen zu ersetzen?
  • Entfernen einer Liste von Zeichen in String
  • Wie suche und erstelle ich utf-8 Sonderzeichen in Python?
  • Python ist die beste Programmiersprache der Welt.