Forum: PC-Programmierung Text in einer Datei suchen und verschieben


von Yanis (Gast)


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 !!!

von Erwin D. (Gast)


Lesenswert?

Yanis schrieb:
> Weiß jemand wie mann das am besten lösen könnte?

Eine Lösung (von vielen) wäre notepad++ mit Makro...

von A. S. (Gast)


Lesenswert?

Könntest Du das Problem denn in Worte fassen? Nur dann kann man es 
umsetzen.

von werists (Gast)


Lesenswert?

1. Phython

2. awk (Linux) oder gawk (Win)
3. Perl

von Openbsd (Gast)


Lesenswert?

Yanis schrieb:
> Guten Abend liebe Gemeinde,
>
> ich stehe hier vor einem Problemchen, ich muss in einer Text-Datei ein
> Wort suchen und um mehrere Zeilen verschieben.
>



Nimm den vi! Editor.

von Christian M. (Gast)


Lesenswert?

Openbsd schrieb:
> vi

Der ist doch ausgestorben...

Beitrag "Vi Editor ausgestorben?"

Gruss Chregu

von Dirk B. (dirkb2)


Lesenswert?

Vielleicht geht auch sed

von Sebastian S. (amateur)


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.

: Bearbeitet durch User
von Dirk B. (dirkb2)


Lesenswert?

Mit Regulären Ausdrücken kann man da sehr, sehr viel machen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Dirk B. schrieb:
> Mit Regulären Ausdrücken kann man da sehr, sehr viel machen.

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

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

von Kommandozeile vor dem Fruehstueck fuer Alle! (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.