Ansicht:   

#472971

Mr. Teflon

02.02.2025, 13:03:19
(editiert von Mr. Teflon, 02.02.2025, 13:03:45)

Batch - Wie Zeilen in Textdatei bearbeiten/splitten? (ed) (pc.coding)

Hallo,

ich habe eine Textdatei und möchte alle Zeilen splitten und etwas nachbearbeiten. Weil das alles stumpfe Tastendrücke mit ständiger Wiederholung sind, frage ich mich ob man das automatisieren könnte.

Bspw. sind viele Zeilen im folgendem Muster enthalten

cezerio_mini.name=cezerio mini dev
waveshare_lcd.name=Waveshare LCD-1.85
yb_eth.name=YelloByte YB-S3-ETH


Jetzt mach ich derzeit folgendes von Hand. Ich schneide den vorderen Teil bis '=' inkl. '=' aus und füge ihn jeweils darunter ein. Oben kommt noch eine '# ' davor.

# cezerio mini dev
cezerio_mini.name=
# Waveshare LCD-1.85
waveshare_lcd.name=
# YelloByte YB-S3-ETH
yb_eth.name=



Der i-Punkt wäre noch wenn man 'name=' durch 'hide=true' ersetzen kann. Das geht aber auch mit dem suchen/ersetzen in jeden Editor am Ende.

Gibt es dafür Möglichkeiten?
cmd, Powershell, Python steht zur Verfügung, aber kaum genutzt. OS ist Win11.

--
___________
Tschau
Mr. Teflon

#472977

MudGuard zur Homepage von MudGuard

München,
02.02.2025, 18:03:46

@ Mr. Teflon

Batch - Wie Zeilen in Textdatei bearbeiten/splitten?

> ich habe eine Textdatei und möchte alle Zeilen splitten und etwas
> nachbearbeiten. Weil das alles stumpfe Tastendrücke mit ständiger
> Wiederholung sind, frage ich mich ob man das automatisieren könnte.
>
> Bspw. sind viele Zeilen im folgendem Muster enthalten
>
>

cezerio_mini.name=cezerio mini dev
> waveshare_lcd.name=Waveshare LCD-1.85
> yb_eth.name=YelloByte YB-S3-ETH
> 


> Jetzt mach ich derzeit folgendes von Hand. Ich schneide den vorderen Teil
> bis '=' inkl. '=' aus und füge ihn jeweils darunter ein. Oben kommt noch
> eine '# ' davor.
>
>

# cezerio mini dev
> cezerio_mini.name=
> # Waveshare LCD-1.85
> waveshare_lcd.name=
> # YelloByte YB-S3-ETH
> yb_eth.name=
> 


>
> Der i-Punkt wäre noch wenn man 'name=' durch 'hide=true' ersetzen kann.
> Das geht aber auch mit dem suchen/ersetzen in jeden Editor am Ende.

kann Dein Editor Reguläre Ausdrücke beim Suchen/Ersetzen?
Wenn ja: Suche nach

 ^(.*?=)(.*?)$


Ersetze durch

# $2\n$1



Beim Suchen: ^Zeilenanfang, $ Zeilenende, () zum Merken, . beliebiges Zeichen, * beliebig oft, ? aber nicht übertreiben
Beim Ersetzen: $2 bezieht sich auf das zweite Klammerpaar, $1 auf das erste, \n ist der Zeilenumbruch.

(ggf - je nach Editor - muß es beim Ersetze-Ausdruck auch \2 und \1 heißen)
Das name= dann in einem 2. Ersetzungsschritt.

--
[image]
MudGuard
O-o-ostern

#472980

rstilz

02.02.2025, 21:36:52

@ Mr. Teflon

Batch - Wie Zeilen in Textdatei bearbeiten/splitten?

> Wiederholung sind, frage ich mich ob man das automatisieren könnte.
Anders wäre mit den heutigen Möglichkeiten von Software auch unnötig.

Es gibt ausser den "hardcore-Weg" mit regulären Ausdrücken noch eine "sanftere" Methode:
Nutze einfach die Textfunktionen deiner Tabellenkalkulation (in den verlinkten Bildern am Beispiel von einem portablen Libreoffice dargestellt).

A) Kopieren des gesamten Textes um ihn im Clipboard zu haben (ev darauf achten einen "simplen" Editor zu verwenden der keine ggf störenden Formatierungen mitschleppt)

B) in Libreoffice diesen Text per Ctrl-V einfügen. Im darauf erfolgten Dialog das "=" als Trennzeichen definieren!
Danach hast du die beiden Textteile schon einmal sauber separiert.

C) Jetzt einfach in einer Nachbarspalte einen neuen Text "zusammensetzen" ganz wie du es möchtest. In Libreoffice zB werden die Einzelteile (also zusätzlicher Text und die Zellinhalte) per "&" aneinandergereiht (s Bild-link). Der "Trick" an dieser Stelle besteht in der Verwendung von "char(13)" das einen Zeilenumbruch schreibt.

Und Voila, fertig ist die Umwandlung. Die Inhalte der Zellen nun wieder mit Ctrl-C/Ctrl-V in einen Texteditor kopieren und dort so abspeichern wie benötigt.
HTH

P.S.
> Der i-Punkt wäre noch wenn man 'name=' durch 'hide=true' ersetzen kann.
Das ginge zwar einzubauen, würde den eigentlichen "Code" aber unnötig verkomplizieren.

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz