Notepad++: Bestimmten Bereich einer Zeile durch bestimmten Bereich der Zeile darunter ersetzen

sweezy92

Newbie
Registriert
Juli 2020
Beiträge
3
Hallo Zusammen!
Ich habe Textdateien der Art:

NAME: 10.32
TIME: 10.36
FORMULA:
//

NAME: 10.32
TIME: 10.08
FORMULA:
//

NAME 10.32
TIME: 10.02
FORMULA:
//
usw.

Ich würde gerne die Zahl, die hinter "NAME: " steht durch die Zahl in der Zeile darunter, die hinter "TIME: " steht, ersetzen. Sodass ich dann folgendes Ergebnis habe:

NAME: 10.36
TIME: 10.36
FORMULA:
//

NAME: 10.08
TIME: 10.08
FORMULA:
//

NAME 10.02
TIME: 10.02
FORMULA:
//

usw.

Ist das möglich und wenn ja, wie?

Vielen Danke und viele Grüße!
 
Ich kenne mich nicht mit NotePad++ aus, aber bezweifle, dass normale Editoren so umfangreiche Änderungen erlauben. Du kannst mal schauen, ob RegEx dir eventuell weiterhilft, das könnte noch über NotePad++ gehen.
Andernfalls müsstest du dir die grundlagen einer beliebigen Programmiersprache angucken, python wäre wohl am einfachsten für so eine Aufgabe.
 
Mach die Datei auf, öffne das Fenster für "suchen und ersetzen", wähle beim Suchmodus "Reguläre Ausdrücke" aus.

Dann nimmst du zum Suchen diesen Ausdruck:

Code:
NAME:? \d{2}\.\d{2}([\r\n]+)TIME:? (\d{2}\.\d{2})

Und zum Ersetzen diesen:

Code:
NAME: $2$1TIME: $2

Damit sollte das klappen.

Und dann empfehle ich dir noch, statt dieser Krücke Notepad++ in Zukunft einen brauchbaren Editor wie "Visual Studio Code" oder so zu verwenden.
 
  • Gefällt mir
Reaktionen: PHuV, Der Lord und sweezy92
Danke für die schnelle Antwort. Genau, meine Idee wäre von der Logik her gewesen:
Suche nach: NAME: (.)\nTIME: (.)\n
Ersetzen durch: NAME: \2\nTIME: \2\n
Aber das stimmt von der Syntax nicht. Versteht jemand meine Idee?
Ergänzung ()

Hallo Exterior! Das klappt perfekt! Vielen Dank. Beim Code bin ich allerdings ausgesteigen... Aber sehr cool"
 
Noch ein kleines follow-up:
Teilweise habe ich Files mit zusätzlichen Fällen wie:

NAME: 5.80
TIME: 5.980
FORMULA:
//

Da funktioniert es dann nicht mehr. Wie gebe ich "ein ODER zwei" Stellen vor dem Punkt an?
Danke :)
 
Das sollte funktionieren:

Code:
NAME:?\s*\d+?\.\d+?([\r\n]+)TIME:?\s*(\d+?\.\d+)
 
Zurück
Oben