Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Leerzeichen am Zeilenende entfernen

Mitglied: thedog

thedog (Level 1) - Jetzt verbinden

21.08.2007, aktualisiert 23.10.2012, 14086 Aufrufe, 15 Kommentare

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 (https://www.administrator.de/forum/leerzeichen-am-ende-der-zeile-mittels ...)
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.
Mitglied: paulepank
21.08.2007 um 11:12 Uhr
Hallo,
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:
01.
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
Bitte warten ..
Mitglied: thedog
21.08.2007 um 11:31 Uhr
Problem ist, es sollte per Batch Datei gelöst werden, die auf jedem xbeliebigen Windows-XP Rechner läuft. Also geht es leider mit sed nicht.
Bitte warten ..
Mitglied: paulepank
21.08.2007 um 11:44 Uhr
Problem ist,
wie oft eine unvollkommene Problembeschreibung

es sollte per Batch Datei gelöst werden,
sed läuft auch in einer Batch

die auf jedem xbeliebigen Windows-XP Rechner läuft.
auf jedem xbeliebigen Rechner wird es solche txt.Dateien nicht geben
Wenn du die Batch auf jeden xbeliebigen Rechner verteilst kannst du gleichzeitig sed mit verteilen.
Also geht es leider mit sed nicht.
Dann doch

cu paulepank
Bitte warten ..
Mitglied: bastla
21.08.2007 um 11:55 Uhr
Hallo thedog!

Falls unter diesen Voraussetzungen zumindest ein VB-Script in Frage kommt, dann etwa so:
01.
'TTB.vbs
02.
Const BAK = ".bak"
03.
Set fso = CreateObject("Scripting.FileSystemObject")
04.
If WScript.Arguments.Count = 0 Then
05.
		WScript.Echo "Es wurde keine Datei übergeben!"
06.
		WScript.Quit(1)
07.
End If
08.
sFile = WScript.Arguments(0)
09.
If Not fso.FileExists(sFile) Then
10.
	WScript.Echo sFile & " konnte nicht gefunden werden!"
11.
	WScript.Quit(1)
12.
End If
13.
Set oFile = fso.GetFile(sFile)
14.
sFilePath = oFile.Path
15.
If fso.FileExists(oFile.Name & BAK) Then fso.DeleteFile(oFile.Name & BAK)
16.
oFile.Name = oFile.Name & BAK
17.
Set oIn = fso.OpenTextFile(sFilePath & BAK, 1)
18.
Set oOut = fso.OpenTextFile(sFilePath, 2, True)
19.
Do While Not oIn.AtEndOfStream
20.
	oOut.WriteLine RTrim(oIn.ReadLine)
21.
Loop
22.
oIn.Close
23.
oOut.Close
Aufruf aus einem Batch mit
01.
cscript //nologo PfadZumScript\TTB.vbs Textdatei.txt
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]
Bitte warten ..
Mitglied: thedog
21.08.2007 um 11:58 Uhr
Gibt es keine Möglichkeit mit Windowseigenem Boardwerkzeug des Problem zu lösen. Da wir dieses Batch Skript für .txt Dateien nutzen wollen, die auf nem Netzlaufwerk lagern wäre es äusserts praktisch, wenn man es ohne irgendwelche externen Tools verwenden könnte.



@bastla: Ein einfaches batch Skript wäre mir lieber. wenns irgendwie geht (Hatte mich vertippt )
Bitte warten ..
Mitglied: paulepank
21.08.2007 um 12:10 Uhr
Hallo,
Da wir dieses Batch Skript für .txt Dateien nutzen wollen, die auf nem Netzlaufwerk lagern

Wozu soll jetzt die Batch auf jedem Rechner laufen ? Du schreibst etwas wirr mein Bester.

cu paulepank
Bitte warten ..
Mitglied: bastla
21.08.2007 um 12:14 Uhr
Hallo thedog!

"bash", aber kein "sed"? Jetzt hast Du mich auch verwirrt ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
21.08.2007 um 12:38 Uhr
... aber solltest Du "Batch" gemeint haben, dann:
01.
@echo off & setlocal
02.
set TTB=%temp%\TTB.vbs
03.
echo BAK=".bak":Set fso=CreateObject("Scripting.FileSystemObject"):sFile=WScript.Arguments(0)>%TTB%
04.
echo Set oFile=fso.GetFile(sFile):sFilePath=oFile.Path:If fso.FileExists(oFile.Name^&BAK) Then fso.DeleteFile(oFile.Name^&BAK)>>%TTB%
05.
echo oFile.Name=oFile.Name^&BAK:Set oIn=fso.OpenTextFile(sFilePath^&BAK,1):Set oOut=fso.OpenTextFile(sFilePath,2,True)>>%TTB%
06.
echo Do While Not oIn.AtEndOfStream:oOut.WriteLine RTrim(oIn.ReadLine):Loop:oIn.Close:oOut.Close>>%TTB%
07.
cscript //nologo %TTB% Textdatei.txt
08.
del %TTB%
Die zu bearbeitende Datei ("Textdatei.txt") ist in der vorletzten Zeile anzugeben.

Grüße
bastla
Bitte warten ..
Mitglied: thedog
21.08.2007 um 13:27 Uhr
... aber solltest Du "Batch"
gemeint haben, dann:
01.
@echo off & setlocal
02.
> set TTB=%temp%\TTB.vbs
03.
> echo BAK=".bak":Set
04.
> fso=CreateObject("Scripting.FileSystemObject"):sFile=WScript.Arguments(0)>%TTB%
05.
> echo Set
06.
> oFile=fso.GetFile(sFile):sFilePath=oFile.Path:If
07.
> fso.FileExists(oFile.Name^&BAK) Then
08.
> fso.DeleteFile(oFile.Name^&BAK)>>%TTB%
09.
> echo oFile.Name=oFile.Name^&BAK:Set
10.
> oIn=fso.OpenTextFile(sFilePath^&BAK,1):Set
11.
> oOut=fso.OpenTextFile(sFilePath,2,True)>>%TTB%
12.
> echo Do While Not
13.
> oIn.AtEndOfStream:oOut.WriteLine
14.
> RTrim(oIn.ReadLine):Loop:oIn.Close:oOut.Close>>%TTB%
15.
> cscript //nologo %TTB% Textdatei.txt
16.
> del %TTB%
17.
> 
Die zu bearbeitende Datei
("Textdatei.txt") ist in der
vorletzten Zeile anzugeben.

Grüße
bastla


Es kommt ne Fehlermeldung:
TTB.vbs(3, 1) Laufzeitfehler in Microsoft VBS
cript: Die Datei ist bereits vorhanden.
Beim ersten Mal hats noch funktioniert. jetzt leider nicht mehr

Edit:
if exist Textdatei.txt del Textdatei.txt
if exist Textdatei.txt.bak del Textdatei.txt.bak

Die zwei Zeilen an den Anfank der Batch Datei anfügen und es klappt :D

Danke an Bastla für seine vbs/Batch Skript :D
Natürlich würde ich mich über ein reines Batch Skript weiterhin freuen.
Bitte warten ..
Mitglied: bastla
21.08.2007 um 21:02 Uhr
Hallo thedog!

Das Löschen einer bereits bestehenden Sicherungskopie wird jetzt auch vom ersten Script selbst übernommen, sodass auch Deine zweite Batchzeile nicht mehr benötigt wird ...

Natürlich würde ich mich über ein reines Batch Skript weiterhin freuen.
Warum?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
22.08.2007 um 03:13 Uhr
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
Bitte warten ..
Mitglied: thedog
22.08.2007 um 08:58 Uhr
Das Problem ist, dass ich das Logfile so bekomm. Wo und wie es generiert wird weiß ich nicht.
Und wegen Batch. Mir würde es so reichen. Aber wie vorgesetzte nunmal so sind haben sie extra wünsche. Mir wurde gestern nach der Vorstellung der Lösung gesagt: "Warum VBS, geht des nicht nur in Batch"
Ich bin soweit, dass ich die Leerzeichen am Zeilenende löschen kann. Aber wenn ein Leerzeichen irgendwo in der Zeilenmitte steht löscht des Skript alles ab da.
Bitte warten ..
Mitglied: Biber
22.08.2007 um 20:52 Uhr
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
Bitte warten ..
Mitglied: thedog
27.08.2007 um 10:12 Uhr
Hab es scho meinem lieben Herrn Chef weitergegeben. Er hat es prompt weitergegeben, an die nette Firma, die das für das Log verantworliche Tool geschrieben hatte. Die nette Firma, die an dieser Stelle nicht genannt werden möchte, hat nach immerhin 2 Tagen ( laut Abrechnung 7h ) diesen Fehler zu beseitigt.
Mein Chef hat herzlich gelacht, mir die Email gezeigt und die Rechnung nicht akzeptiert.
Inzwischen wurde die Rechnung beigelegt. Der BigBoss der anderen Firma war eben auf nen Kaffee bei uns hat sich mehrfach entschuldigt und deren Fehler eingestanden.
"Natürlich hätte nie eine Rechnung geschrieben werden dürfen, da die Ausgabe von ihnen nicht sauber programmiert wurde und wir uns ja zu recht beschwert hätten ...."
Trotzdem vielen vielen Dank an euch alle, die mir geholfen haben.
Bitte warten ..
Mitglied: Biber
27.08.2007 um 10:50 Uhr
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
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail

EMails werden nach 3 Monaten entfern - Einstellung

Frage von staybbOutlook & Mail5 Kommentare

Hallo, ich habe bei einem Postfach das Problem, dass in Outlook alle Mails älter wie 3 Jahre verscheinden und ...

Neue Wissensbeiträge
Windows 10

Windows 10 kann XPS erzeugen aber nicht anzeigen ????

Erfahrungsbericht von Deepsys vor 21 StundenWindows 10

Heute schickt mir ein Kollegen eine E-Mail mit einer XPS-Datei vom Kunden im Anhang und fragt wie er diese ...

Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 1 TagExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 1 TagLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 3 TagenWindows Mobile1 Kommentar

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Wo lässt sich das Gateway in der FRITZ!Box 7360 einstellen?
gelöst Frage von OssabowLAN, WAN, Wireless15 Kommentare

Hallo all, nach gründlicher Suche scheine ich der einzige zu sein der das Problem hat (macht micht schon mal ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server14 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...

Microsoft Office
Office 2016 oder Office 2019
Frage von PeterzMicrosoft Office13 Kommentare

Hallo zusammen, wir müssen unser Office von 2010 auf eine neuere Version Umstellen. Jetzt stellt sich die Frage, ob ...

Windows Server
Sicherung Domain Controller
gelöst Frage von Monto1Windows Server12 Kommentare

Hallo zusammen, wie sichert Ihr den Domain Controller? Selbst, wenn zwei parallel laufen, ist eine Sicherung doch mal nützlich. ...