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-Key: 212861

Url: https://administrator.de/contentid/212861

Printed on: April 18, 2024 at 12:04 o'clock

Member: Scroller
Scroller Jul 30, 2013 at 08:38:53 (UTC)
Goto Top
hi,

Powershell-Variante:

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


Gruss SC
Member: colinardo
colinardo Jul 30, 2013 updated at 08:55:14 (UTC)
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.
Member: QfineRs
QfineRs Jul 30, 2013 updated at 08:59:26 (UTC)
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?
Member: colinardo
colinardo Jul 30, 2013 at 09:03:52 (UTC)
Goto Top
bei meinem Test hab ich das aber nicht ... die werden ja mit
Trim(arrText(i))
entfernt
Member: QfineRs
QfineRs Jul 30, 2013 at 09:05:18 (UTC)
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!
Member: Lochkartenstanzer
Lochkartenstanzer Jul 30, 2013 at 11:53:21 (UTC)
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
Member: Lochkartenstanzer
Lochkartenstanzer Jul 30, 2013 updated at 12:00:15 (UTC)
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
Member: QfineRs
QfineRs Jul 30, 2013 at 12:04:11 (UTC)
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?
Member: QfineRs
QfineRs Jul 30, 2013 at 12:04:36 (UTC)
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
Member: Lochkartenstanzer
Lochkartenstanzer Jul 30, 2013 updated at 12:40:36 (UTC)
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