Leerzeichen am Zeilenende entfernen
Hi,
ich habe schon ne ganze Weile gesucht und auch einen Ansatz gefunde. leider wurde mein Problem noch nicht zufriedenstellend gelöst
Mein Problem ist folgendes. Ich habe eine .txt in der leider an den Zeilenenden unterschiedlich viele Leerzeichen sind. Ich benötige die Datei aber ohne Leerzeichen am Zeilenende.
Ich habe hier im Forum schon eine Lösung gefunden (Leerzeichen am Ende der Zeile mittels Batch entfernen?)
Dummerweise löscht diese Lösung alle Leerzeichen. In manchen Zeilen von meiner .txt befinden sich aber auch in der Zeile Leerzeichen.
Diese dürfen nicht entfernt werden.
Schon mal im Vorraus vielen dank für eure Hilfe.
ich habe schon ne ganze Weile gesucht und auch einen Ansatz gefunde. leider wurde mein Problem noch nicht zufriedenstellend gelöst
Mein Problem ist folgendes. Ich habe eine .txt in der leider an den Zeilenenden unterschiedlich viele Leerzeichen sind. Ich benötige die Datei aber ohne Leerzeichen am Zeilenende.
Ich habe hier im Forum schon eine Lösung gefunden (Leerzeichen am Ende der Zeile mittels Batch entfernen?)
Dummerweise löscht diese Lösung alle Leerzeichen. In manchen Zeilen von meiner .txt befinden sich aber auch in der Zeile Leerzeichen.
Diese dürfen nicht entfernt werden.
Schon mal im Vorraus vielen dank für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 66683
Url: https://administrator.de/contentid/66683
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
15 Kommentare
Neuester Kommentar
Hallo,
Das Programm "sed" findest du selbst
Ganz schlecht, setze lieber den Beitrag auf gelöst.
cu paulepank
Ich habe eine .txt in der leider an den Zeilenenden unterschiedlich viele Leerzeichen sind.
Sicher , dass es nur Leerzeichen und nicht auch Tabs sind ?Ich benötige die Datei aber ohne Leerzeichen am Zeilenende.
Code:sed s/\x20*$// datei_mit_leerzeichen.txt >datei_ohne_leerzeichen.txt
Das Programm "sed" findest du selbst
Schon mal im Vorraus vielen dank für eure Hilfe.
Ganz schlecht, setze lieber den Beitrag auf gelöst.
cu paulepank
Problem ist,
wie oft eine unvollkommene Problembeschreibunges sollte per Batch Datei gelöst werden,
sed läuft auch in einer Batchdie auf jedem xbeliebigen Windows-XP Rechner läuft.
auf jedem xbeliebigen Rechner wird es solche txt.Dateien nicht gebenWenn du die Batch auf jeden xbeliebigen Rechner verteilst kannst du gleichzeitig sed mit verteilen.
Also geht es leider mit sed nicht.
Dann dochcu paulepank
Hallo thedog!
Falls unter diesen Voraussetzungen zumindest ein VB-Script in Frage kommt, dann etwa so:
Aufruf aus einem Batch mit
Die ursprüngliche Textdatei bleibt dabei als Sicherung unter "Textdatei.txt.bak" bestehen.
Grüße
bastla
[Edit] Nachtrag: Zeile
If fso.FileExists(oFile.Name & BAK) Then fso.DeleteFile(oFile.Name & BAK)
zum Löschen bereits bestehender Sicherungskopie eingefügt. [/Edit]
Falls unter diesen Voraussetzungen zumindest ein VB-Script in Frage kommt, dann etwa so:
'TTB.vbs
Const BAK = ".bak"
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count = 0 Then
WScript.Echo "Es wurde keine Datei übergeben!"
WScript.Quit(1)
End If
sFile = WScript.Arguments(0)
If Not fso.FileExists(sFile) Then
WScript.Echo sFile & " konnte nicht gefunden werden!"
WScript.Quit(1)
End If
Set oFile = fso.GetFile(sFile)
sFilePath = oFile.Path
If fso.FileExists(oFile.Name & BAK) Then fso.DeleteFile(oFile.Name & BAK)
oFile.Name = oFile.Name & BAK
Set oIn = fso.OpenTextFile(sFilePath & BAK, 1)
Set oOut = fso.OpenTextFile(sFilePath, 2, True)
Do While Not oIn.AtEndOfStream
oOut.WriteLine RTrim(oIn.ReadLine)
Loop
oIn.Close
oOut.Close
cscript //nologo PfadZumScript\TTB.vbs Textdatei.txt
Grüße
bastla
[Edit] Nachtrag: Zeile
If fso.FileExists(oFile.Name & BAK) Then fso.DeleteFile(oFile.Name & BAK)
zum Löschen bereits bestehender Sicherungskopie eingefügt. [/Edit]
... aber solltest Du "Batch" gemeint haben, dann:
Die zu bearbeitende Datei ("Textdatei.txt") ist in der vorletzten Zeile anzugeben.
Grüße
bastla
@echo off & setlocal
set TTB=%temp%\TTB.vbs
echo BAK=".bak":Set fso=CreateObject("Scripting.FileSystemObject"):sFile=WScript.Arguments(0)>%TTB%
echo Set oFile=fso.GetFile(sFile):sFilePath=oFile.Path:If fso.FileExists(oFile.Name^&BAK) Then fso.DeleteFile(oFile.Name^&BAK)>>%TTB%
echo oFile.Name=oFile.Name^&BAK:Set oIn=fso.OpenTextFile(sFilePath^&BAK,1):Set oOut=fso.OpenTextFile(sFilePath,2,True)>>%TTB%
echo Do While Not oIn.AtEndOfStream:oOut.WriteLine RTrim(oIn.ReadLine):Loop:oIn.Close:oOut.Close>>%TTB%
cscript //nologo %TTB% Textdatei.txt
del %TTB%
Grüße
bastla
Moin thedog,
bis auf weiteres schließe ich mich bastla's "Warum?" an.
Außerdem noch die Nachfrage: WTF sind denn diese "ein oder mehrere Leerzeichen am Zeilenende"????
Wollen wir nicht lieber mal die Ursache abstellen als auf drei verschiedene Arten dieses in den Brunnen gefallene Kiddie wieder hochzupäppeln?
Dann gibt sich ja bald gar keiner mehr Mühe, Logfiles brauchbar zu schreiben....
Grüße
Biber
bis auf weiteres schließe ich mich bastla's "Warum?" an.
Außerdem noch die Nachfrage: WTF sind denn diese "ein oder mehrere Leerzeichen am Zeilenende"????
Wollen wir nicht lieber mal die Ursache abstellen als auf drei verschiedene Arten dieses in den Brunnen gefallene Kiddie wieder hochzupäppeln?
Dann gibt sich ja bald gar keiner mehr Mühe, Logfiles brauchbar zu schreiben....
Grüße
Biber
Moin thedog,
war ja durchaus nicht böse gemeint von mir - ist mir schon klar, dass es im Moment Dein Problem ist, dass diese Logdateien so -ich sage es mal hochdeutsch- fehlerhaft geschrieben werden.
Aber genau diesen Ball solltest Du zurückspielen an Deine Chefs.
Entweder die sagen: "Ey, is' ja eigentlich kein Fehler der Logdatei-schreibenden Software... ist eine liebenswerten Eigentümlichkeit, wegen der wir nicht meckern.."
---> Dann kannst Du sagen: "Okay, akzeptier' ich... und diese liebenswerte Eigentümlichkeit reiche ich Eins-zu-Eins weiter."
Oder die sagen: "Klar ist das ein Fehler, aber wir haben keine Rechte auf Fehlerbereinigung, weil das ein Freewaretool ist mit 'use on own risk'-Klausel".
---> Dann kannst Du wahrheitsgemäß berichten: "Okay, kein Problem, trailing blanks kann ich entfernen - entweder mit SED oder aber mit kiX/VBS... aber halt nicht ohne mögliche Seiteneffekte mit native Batch. Geht nicht ohne Stress - sacht sogar das admistrator-Forum.
Grüße
Biber
war ja durchaus nicht böse gemeint von mir - ist mir schon klar, dass es im Moment Dein Problem ist, dass diese Logdateien so -ich sage es mal hochdeutsch- fehlerhaft geschrieben werden.
Aber genau diesen Ball solltest Du zurückspielen an Deine Chefs.
Entweder die sagen: "Ey, is' ja eigentlich kein Fehler der Logdatei-schreibenden Software... ist eine liebenswerten Eigentümlichkeit, wegen der wir nicht meckern.."
---> Dann kannst Du sagen: "Okay, akzeptier' ich... und diese liebenswerte Eigentümlichkeit reiche ich Eins-zu-Eins weiter."
Oder die sagen: "Klar ist das ein Fehler, aber wir haben keine Rechte auf Fehlerbereinigung, weil das ein Freewaretool ist mit 'use on own risk'-Klausel".
---> Dann kannst Du wahrheitsgemäß berichten: "Okay, kein Problem, trailing blanks kann ich entfernen - entweder mit SED oder aber mit kiX/VBS... aber halt nicht ohne mögliche Seiteneffekte mit native Batch. Geht nicht ohne Stress - sacht sogar das admistrator-Forum.
Grüße
Biber
Moin thedog,
auch wenn Du es vielleicht schon geahnt haben magst: ich finde es so auch die mit Abstand beste Lösung.
Denn es ist verdammt schwergefallen, in meinem vorangegangenen Kommentar dieses logdatei-erzeugende Machwerk halbwegs unverfänglich als fehlerhaft geschrieben zu bezeichnen.
Bei uns in Bremen wurden noch vor wenigen Jahren derartige Lieferanten als Deichverstärkung genutzt, behaupten böse Zungen.
Na ja, ich könnte mir vorstellen, dass Du den gemeinsamen Kaffee mit dem Other-BigBoss ab-so-lut genossen hast. Jede einzelne Minute...*gg
Danke Dir für die Rückmeldung und ich schließe den Thread mal.
Grüße
Biber
auch wenn Du es vielleicht schon geahnt haben magst: ich finde es so auch die mit Abstand beste Lösung.
Denn es ist verdammt schwergefallen, in meinem vorangegangenen Kommentar dieses logdatei-erzeugende Machwerk halbwegs unverfänglich als fehlerhaft geschrieben zu bezeichnen.
Bei uns in Bremen wurden noch vor wenigen Jahren derartige Lieferanten als Deichverstärkung genutzt, behaupten böse Zungen.
Na ja, ich könnte mir vorstellen, dass Du den gemeinsamen Kaffee mit dem Other-BigBoss ab-so-lut genossen hast. Jede einzelne Minute...*gg
Danke Dir für die Rückmeldung und ich schließe den Thread mal.
Grüße
Biber