Suchen und Ersetzen in Notepad++

hatschki

Lt. Junior Grade
Registriert
Juli 2013
Beiträge
370
Moin allerseits,

Ich hänge hier an einer Datei mit knapp 30.000 Zeilen welche ich ungern händisch bearbeiten möchte.

Datei
XML:
.....

      <text lang="de">Muster Text ABC</text>
      <text lang="en">Muster Text XYZ</text>
.....
.....

      <text lang="de">Muster Text 123</text>
      <text lang="en">Muster Text 789</text>
.....

der Text-Part wiederholt sich mehrmals in der Datei allerdings immer mit einem anderen Inhalt in DE & EN.
Was ich nun vorhabe: Per Suchen und Ersetzen den Inhalt der EN Zeile durch den Inhalt der darüber liegender DE Zeile zu ersetzen.
So wie ich es bisher versucht habe, wurde der Text dann in allen EN Zeilen ersetzt - was natürlich falsch ist.

Weiß jemand von euch wie ich das handhaben könnte?

Danke für Hinweise..

Gruß
Hatschki
 
Wäre es eine Möglichkeit, das Suchen und Ersetzen 1x als Makro aufzueichnen und dieses anschließend über die Datei zu jagen?
 
  • Gefällt mir
Reaktionen: hatschki und alexx_pcfreak
@1beginner Gute Idee, nur klappt das nicht so wie gewünscht.
Wenn ich sage "Suche 1 und ersetze durch 2" als Makro aufnehme, ersetzt er nur die erste Zeile. Die restlichen bleiben unberührt. Setze ich den Platzhalter .*? im N++ ein, wird der Platzhalter eingetragen..

Das Hauptproblem wird sein, dem Marko o.ä. beizubringen das ich immer den Inhalt zwischen den Tags, in der vorherigen Zeile einsetzen möchte. Das ist bei jedem Part was anderes..

XML:
      <text lang="de">Muster Text 1</text>
      <text lang="en">Muster Text 2</text>

      <text lang="de">Muster Text 3</text>
      <text lang="en">Muster Text 4</text>

      <text lang="de">Muster Text 5</text>
      <text lang="en">Muster Text 6</text>

      <text lang="de">Muster Text 7</text>
      <text lang="en">Muster Text 8</text>

      <text lang="de">Muster Text 9</text>
      <text lang="en">Muster Text 10</text>

      <text lang="de">Muster Text 11</text>
      <text lang="en">Muster Text 12</text>

      <text lang="de">Muster Text 13</text>
      <text lang="en">Muster Text 14</text>

      <text lang="de">Muster Text 15</text>
      <text lang="en">Muster Text 16</text>
 
Makro ist schon ein guter Ansatz. Dadurch, daß du zeilenbasiert und nur teilweise zeichenbasiert arbeitest, bietet es sich an, das ganze mal als .csv abzuspeichern, in Excel zu öffnen und es darin mit dem Aufzeichnen eines Makros zu probieren.
 
Moin,
ich würde folgendes versuchen:
  • Kopie der *.xml erstellen
  • umbenennen als *.txt
  • Importieren in Excel (als Text-Datei)
  • per VBA Zeile für Zeile auf <text lang="en"> überprüfen und durch den entsprechenden Text aus der Vor-Zeile ersetzen.
  • Als *.txt speichern
  • Wieder umbenennen.
Viel Glück!
 
Hier stand nichts hilfreiches ...

Edit:

suchen nach: (<text lang="de">)(.*</text>)(\r\n\s*<text lang="en">)(.*</text>)
Ersetzen mit: $1$2$3$2

Durch die runden Klammern definierst du eine "Variable" und kannst diese beim Ersetzen entsprechen mit $X aufrufen.
 
Zuletzt bearbeitet:
Zurück
Oben