Text in einer Datei suchen und verschieben

Gast #6069385
Lesenswert?

Guten Abend liebe Gemeinde,

ich stehe hier vor einem Problemchen, ich muss in einer Text-Datei ein 
Wort suchen und um mehrere Zeilen verschieben.

Klar mann kann das mit der Hand machen, aber wenn das sich um sehr viele 
Elemente handelt wird es zu einem Problem!

Weiß jemand wie mann das am besten lösen könnte?

Viele Grüße und einen schönen Abend noch !!!
#6100625
Lesenswert?

Natürlich kann man so etwas mit dem Notepad (Makro Recorder) machen, 
aber spätestens wenn Du das automatisieren willst, wirst Du mit der 
Definition von:
>>um mehrere Zeilen verschieben.
Probleme bekommen.

Praktisch alle Makros wollen "genau" wissen, was ausgeschnitten werden 
soll und wohin mit dem Ausschnitt. Das kann ein paar Mal gut gehen, aber 
die Ergebnisse können aber auch ausgesprochen Lustig werden.
Dann merkt man schnell, dass die üblichen Suchfunktionen sehr "dumm" 
sind, da sie stur Buchstabenfolgen suchen. Die Suche nach "Laut" findet 
auch "Umlaut" oder Lautstärke und das in jedem Falle, auch wenn Du es so 
nicht gewollt hast. Manchmal erscheint so ein Suchbegriff auch im 
"falschen" Kontext. Hier wird es schnell lustig.
Definitionen wie "mehrere Zeilen" sind schlicht und ergreifend unsinnig. 
So Sachen wie eine Zeile runter ergibt ein völlig anderes Bild, wenn das 
Wort am Zeilenanfang steht wie am Zeilenende. Noch lustiger wird es, 
wenn die Darstellungsroutine dieses Wort eigenmächtig an den 
Zeilenanfang stellt, obwohl es in Wirklichkeit am Zeilenende stand 
(automatischer Zeilenumbruch).

Unter Notepad würde ich das Problem zweiteilen.
Eine einfache Suche mit ctrl+f.
Gucken ob die Umgebung stimmt.
Jetzt weißt Du wo der Cursor steht.
Ab hier einen Makro erstellen, der die restlichen Schritte ausführt.
Und weiter mit manuellem ctrl+f – kontrollieren – ggf. Makro ausführen.
Gast #6100672
Lesenswert?

>  Die Suche nach "Laut" findet
> auch "Umlaut" oder Lautstärke und das in jedem Falle, auch wenn Du es so
> nicht gewollt hast.

Deswegen nutzt man PCRE[1] und sucht nach r'\WLaut\W' oder 
r'\W[Ll]aut\W'.

> Definitionen wie "mehrere Zeilen" sind schlicht und ergreifend unsinnig.
> So Sachen wie eine Zeile runter ergibt ein völlig anderes Bild, wenn das
> Wort am Zeilenanfang steht wie am Zeilenende.

Deswegen von "Zeilen" verabschieden und Option MULTILINE und/oder DOTALL 
von PCRE verwenden. Nicht dass es dadurch einfach wird, aber doch 
moeglich.


> > Mit Regulären Ausdrücken kann man da sehr, sehr viel machen.
Jap, inklusive eingewachsene Zehennaegel auskurieren

> Innerhalb einer Zeile: Ja.
> Einen Ausdruck um mehrere Zeilen nach unten schieben: Schwierig.

Die Kunst besteht darin, das Suchmuster und das Einfuegemuster getrennt 
ausformulieren.


> Der TO sollte seine Aufgabe präziser formulieren.
> Sonst artet das hier in Spekulation aus.

Ja TO, mach ma' Beispiel. Prosa Text oder synthetischer Text (wie Daten 
oder Quellcode)?


[1] PCRE
  * <https://pcre.org/pcre.txt>;


NB: Editoren ohne (PC)RE sind deren (Zeit-)Ver(sch-)wendung nicht wert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren