qfiners
Goto Top

Batch Datei - txt Datei auf String durchsuchen und Zeilenumbruch hinzufügen

Hallo Community,

ich stehe vor einen Problem. Ich möchte eine txt Datei nach einem String teil durchsuchen und nach diesem String Teil einen Zeilenumbruch einfügen.

Bsp.: Im Moment sieht der Text so aus:

get abc.CSV get def.CSV get cyz.CSV

So soll er dann aussehen:
get abc.CSV
get def.CSV
get cyz.CSV


Ich würde die Text Datei nach CSV String durchsuchen und anschließend eine Zeilenumbruch einfügen, doch wie mache ich das?

Content-ID: 212861

Url: https://administrator.de/forum/batch-datei-txt-datei-auf-string-durchsuchen-und-zeilenumbruch-hinzufuegen-212861.html

Ausgedruckt am: 23.12.2024 um 16:12 Uhr

Scroller
Scroller 30.07.2013 um 10:38:53 Uhr
Goto Top
hi,

Powershell-Variante:

$s = gc c:\ursprungstatei.txt
$s.split("V") | % {$_.trim()+"V"} >> nfile.txt  


Gruss SC
colinardo
colinardo 30.07.2013 aktualisiert um 10:55:14 Uhr
Goto Top
Hallo QfineRs,

VBS-Variante:

FILEPATH = "D:\testtext.txt"  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objText = objFSO.OpenTextFile(FILEPATH,1)
strText = objText.ReadAll
objText.Close()
arrText = Split(strText,"CSV")  
Set objText = objFSO.OpenTextFile(FILEPATH,2)
For i = 0 To UBound(arrText) -1
	objText.WriteLine(Trim(arrText(i)) & "CSV")  
Next
objText.Close()

Grüße Uwe
Gelöste Beitrage bitte auch als solche markieren.Danke.
QfineRs
QfineRs 30.07.2013 aktualisiert um 10:59:26 Uhr
Goto Top
Zitat von @colinardo:
Hallo QfineRs,

VBS-Variante:

> FILEPATH = "D:\testtext.txt"  
> Set objFSO = CreateObject("Scripting.FileSystemObject")  
> Set objText = objFSO.OpenTextFile(FILEPATH,1)
> strText = objText.ReadAll
> objText.Close()
> arrText = Split(strText,"CSV")  
> Set objText = objFSO.OpenTextFile(FILEPATH,2)
> For i = 0 To UBound(arrText) -1
> 	objText.WriteLine(Trim(arrText(i)) & "CSV")  
> Next
> objText.Close()
> 

Grüße Uwe
Gelöste Beitrage bitte auch als solche markieren.Danke.

Vielen Dank für den Lösungsvorschlag. Es funkioniert auch, nur habe ich nun noch ein leerzeichen davor siehe bsp:

get abc.CSV
(LEERZEICHEN) get def.CSV
(LEERZEICHEN) get def.CSV

kann ich das noch beheben?
colinardo
colinardo 30.07.2013 um 11:03:52 Uhr
Goto Top
bei meinem Test hab ich das aber nicht ... die werden ja mit
Trim(arrText(i))
entfernt
QfineRs
QfineRs 30.07.2013 um 11:05:18 Uhr
Goto Top
Zitat von @colinardo:
bei meinem Test hab ich das aber nicht ... die werden ja mit
Trim(arrText(i))
entfernt

Ich werde es schon noch hinbekommen, aber du hast mir super weiter geholfen!
Lochkartenstanzer
Lochkartenstanzer 30.07.2013 um 13:53:21 Uhr
Goto Top
Moin,

sed-variante :

lks@roku:~$ echo "get abc.CSV get def.CSV get cyz.CSV" | sed -e "s:CSV :CSV\n:g"
get abc.CSV
get def.CSV
get cyz.CSV

lks
Lochkartenstanzer
Lochkartenstanzer 30.07.2013 aktualisiert um 14:00:15 Uhr
Goto Top
Nachtrag:

Die Zeile sieht irgendwie nach eienr Ausgabe von einem Programm/Script aus. Wäre es nicht geschickter, das Skript so zu gestalten, daß es gleich die Zeilenvorshchübe mit einbaut?

lks
QfineRs
QfineRs 30.07.2013 um 14:04:11 Uhr
Goto Top
Zitat von @Lochkartenstanzer:
Moin,

sed-variante :

> lks@roku:~$ echo "get abc.CSV get def.CSV get cyz.CSV" | sed -e "s:CSV :CSV\n:g"
> get abc.CSV
> get def.CSV
> get cyz.CSV
> 

lks

was ist sed?
QfineRs
QfineRs 30.07.2013 um 14:04:36 Uhr
Goto Top
Zitat von @Lochkartenstanzer:
Nachtrag:

Die Zeile sieht irgendwie nach eienr Ausgabe von einem Programm/Script aus. Wäre es nicht geschickter, das Skript so zu
gestalten, daß es gleich die Zeilenvorshchübe mit einbaut?

lks

ich komme leider an den Script direkt nicht dran
Lochkartenstanzer
Lochkartenstanzer 30.07.2013 aktualisiert um 14:40:36 Uhr
Goto Top
Zitat von @QfineRs:
was ist sed?

sed ist ein Stream Editor u.a. auch in cygwin enthalten oder als eigene Exe für windows verfügbar. Unter unixoiden Betriebssystemen ist es meistens schon auf dem System installiert.

lks