Per Batch ein Wort in Einer Textdatei gegen ein anderes ersetzen
Hallo!
Ich bin auf der suche nach einem Befehl für eine Batch dstei mit dem man Ein Wort in einer Text datei gegen ein anderes ersetzen kann.
Sagen wir erst sieht die Text datei so aus:
Von Bjoern:
Hallo!
und danach soll sie so aussehen:
(Von) Bjoern:
Hallo
also das Von gegen ein (Von) ersetzen.
Ich habe mich natürlich schon im Forum umgeschaut, habe aber nur bei diesem Beitrag hier: Per Batchdatei Textdateien bearbeiten
etwas gefunden.
jedoch funktioniert der Befehl sed nicht. Wie muss ich das verstehen? Ich habe den Befehl sed schon öfters hier gesehen aber für welche Programmiersprache braucht man sed denn?
MfG Bjoern
Ich bin auf der suche nach einem Befehl für eine Batch dstei mit dem man Ein Wort in einer Text datei gegen ein anderes ersetzen kann.
Sagen wir erst sieht die Text datei so aus:
Von Bjoern:
Hallo!
und danach soll sie so aussehen:
(Von) Bjoern:
Hallo
also das Von gegen ein (Von) ersetzen.
Ich habe mich natürlich schon im Forum umgeschaut, habe aber nur bei diesem Beitrag hier: Per Batchdatei Textdateien bearbeiten
etwas gefunden.
jedoch funktioniert der Befehl sed nicht. Wie muss ich das verstehen? Ich habe den Befehl sed schon öfters hier gesehen aber für welche Programmiersprache braucht man sed denn?
MfG Bjoern
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80883
Url: https://administrator.de/contentid/80883
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
4 Kommentare
Neuester Kommentar
Das dort verwendete sed ist ein Befehl unter Linux.
Es gibt aber auch diese Linuxkomandos als Programme unter Windows, die man dann extra runterladen kann.
Wi ees Rein mit Windows Boardmitteln geht ist z.B. hier gezeigt:
In einer Textdatei das Zeichen Und ersetzen durch u
Prinzipiell steht alles in der Hilfe vom set befehl (set /?)
Das funktioniert allerdings nur so leicht bei normalen Asci Text Dateien. Sobalt andere Zeichen enthalten sind die über den normalen Zeichensatz hinausgehen wird das damit schwierig und sollte getestet werden.
miniversum
Es gibt aber auch diese Linuxkomandos als Programme unter Windows, die man dann extra runterladen kann.
Wi ees Rein mit Windows Boardmitteln geht ist z.B. hier gezeigt:
In einer Textdatei das Zeichen Und ersetzen durch u
Prinzipiell steht alles in der Hilfe vom set befehl (set /?)
Das funktioniert allerdings nur so leicht bei normalen Asci Text Dateien. Sobalt andere Zeichen enthalten sind die über den normalen Zeichensatz hinausgehen wird das damit schwierig und sollte getestet werden.
miniversum
Allgemein ist die Wichtige Konstruktion diese hier:
Also im konkreten Fall das jedes "&" durch ein "und" ersetzt wird:
miniversum
%text:zu_ersetzender_text=ersatz_text%
Bzw hier in dem Beispiel:!text:^&=und!
Wobei das "^" vor dem "&" in diesem Fall nur notwendig ist weil das "&" Zeichen in Batch für was anderes vorgesehen ist und sonst falsch interpretiert werden würde. Bei Normalen Textzeichen (a-z, Zahlen) ist das kein Problem. Bei andern Zeichen kanns sein das es gebraucht wird (%,!,^<>).Also im konkreten Fall das jedes "&" durch ein "und" ersetzt wird:
@echo off
setlocal enabledelayedexpansion
set "filename=text.txt"
set "tempfile=tmptxt.txt"
for /F "delims=" %%a in (%filename%) do (
set text=%%a
set text=!text:^&=und!>>%tempfile%
)
del %filename%
miniversum