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 Ende eine Zeile Löschen. Leerzeichen im Rest der Zeile aber so bestehen lassen

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

09.05.2012, aktualisiert 18.10.2012, 6424 Aufrufe, 8 Kommentare

Ich habe eine Datei die mit mehreren Spalten. Durch Leerzeichen sind die Einzelnen Einträge voneinander getrennt.
Es sind entweder 4 oder 5 Spalten. Und danach habe ich noch ein paar Leerzeichen.
Weil ich vorhere in manchen Zeilen was abschneiden mußte.

Jetzt möchte ich aber die Leerzeichen am Enden weg haben.

Ein
01.
for /F "Tokens=1-5 " %%b in (C:\org.log) do  ( echo %%b,%%c,%%d,%%e,%%f >> C:\neues-org.log )

Funktioniert ja nicht weil dann sind ja auch die Leerzeichen dazwischen weg.

ich habe mir schon gedacht ich nehm jede Zeile untersuch dort das letzt Zeichen und wenn es ein Leezeich ist nehem ich es weg.
Aber wie ich das Batch Programmiertechnis Umstzte weiß ich nicht.

Kann mir Jemand dabei helfen.
Mitglied: mak-xxl
09.05.2012, aktualisiert 18.10.2012
Moin mycroftone,

etwa so für schließende (und führende!) Leerzeichen in einer Zeile:

01.
@echo off 
02.
for /f "delims=" %%i in (C:\org.log) do @call :trim %%i 
03.
goto :eof 
04.
:trim 
05.
echo [%*] >> C:\org.neu 
06.
goto :eof
Die Klammern in Zeile 5 für den Normalbetrieb entfernen - nur zur besseren Demonstration.

Der Dank geht an Biber - weil hier.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: ctietje
09.05.2012 um 21:06 Uhr
ich mache so etwas so:
1. zunächst alle Stellen vielen Leerzeichen ungerader Zahl durch suchen & ersetzen gegen nichts: entfernt alle größeren Gruppen mit drei Zeichen restlos.
2. Immer so weiter bis zu kleinen Zahlen wie drei Leerzeichen
2. dann haben wir nur noch gerade Anzahlen von Leerzeichen. Die entfernen durch suchen & ersetzen zweier Leerzeichen gegen nichts.

OK?
Bitte warten ..
Mitglied: bastla
09.05.2012 um 21:23 Uhr
@Mario
Das Leerzeichen vor ">>" ist allerdings gerade in diesem Fall besonders kontraproduktiv - besser so:
>>C:\org.neu echo [%*]
- und darauf achten, dass es nicht am Ende dieser Codezeile noch eines gibt ...

Grüße
bastla
Bitte warten ..
Mitglied: mak-xxl
09.05.2012 um 21:42 Uhr
@bastla,

ja also die leergezeichneten Trittbrettfahrer und meiner einer - ein gefährliches Gespann.
Danke für die Korrektur.

Einen schönen Feierabend und freundliche Inselgrüße - Mario
Bitte warten ..
Mitglied: gammaplayer
10.05.2012 um 06:50 Uhr
Machst du das denn öfter und rechtfertigt es somit überhaupt ein Kommandozeilenscript?
Wenn du das öfter machst wäre n Skript natürlich sicherlich besser für ne automatische Verarbeitung.

Für nen Einzelfall würde ich in meinem Editor einfach das letzte Leerzeichen + Zeilenumbruch durch einen Zeilenumbruch ersetzen und gut ist.
Mit sed wäre das auch kein Problem ;)
Und ich nehme an, dass das mit nem Powershell-Skript auch kein Ding sein sollte.

Nur mal so als Denkanstoß.

Mit wilden Algorithmen zu gerader Anzahl von Leerzeichen tust du dir glaube nichts Gutes.

Achso ich sehe gerade dass am Ende mehrere Leerzeichen sein können, auch kein Ding mit regulären Ausdrücken.
Sollte in guten Texteditoren kein Thema sein und auch z.B. in der Powershell nicht, die sollte mit sowas umgehen können.
Bzw. könnte ich im Editor einfach Spaltenweise markieren und so die Leerzeilen loswerden, vorausgesetzt die Spalten sind gleich breit oder wurden durch Tabs getrennt.
Was mich zu der Frage führt woher die Daten überhaupt kommen und ob man nicht an der Daten erzeugenden Quelle schon für Verbesserungen sorgen könnte.

Fragen über Fragen... ist glaube noch zu früh. Mach mir schonwieder zuviele Gedanken über sone simple Sache. :D


Naja egal.... macht ihr mal


P.S. regulärer Ausdruck für ersetzen von Whitespace am Ende einer Zeile wäre dann "[[:s:]]*$" mit "\r\n" ersetzen. (ohne Änführungsstriche, Syntax kann sich unterscheiden, je nachdem wie/wo eingesetzt) Das ist jetzt Perl-Syntax innerhalb von UltraEdit. [[:s:]] = beliebiger Whitespace-Character, * = vorheriges Zeichen beliebig oft, $ = Zeilenende, "\r\n" = Carriage Return + Line Feed = neue Zeile unter Windows.
Bitte warten ..
Mitglied: pieh-ejdsch
10.05.2012 um 14:14 Uhr
moin mycroftone,

... das Batch Programmiertechnis Umstzte ...
Wie Bugs Bunny?

Immer 5 tokens? Dann Schreibe statt Kommata die Leerzeichen.
Wenn nur vier oder fünf Tokens sein sollen, prüfe auf ein 5. Token.
01.
@echo off 
02.
setlocal disabledelayedexpansion 
03.
if not exist "%~1" echo Datei nicht gefunden. 1>&2 &exit /b 1 
04.
(for /f "usebackq tokens=1-5 delims= " %%a in (%1) do if "%%e" neq "" (echo %%a %%b %%c %%d %%e 
05.
  ) else echo(%%a %%b %%c %%d 
06.
) >"%~dp1neues-%~nx1"
Sonst lass die Unterroutine den Müll die Leerzeichen am Zeilenende entsorgen:
01.
@echo off 
02.
setlocal disabledelayedexpansion 
03.
if not exist "%~1" echo Datei nicht gefunden. 1>&2 &exit /b 1 
04.
findstr /n "^" %1 1>"%~1.tmp" 
05.
06.
for /f usebackqdelims^= %%a in ("%~1.tmp") do (set "Line=%%a" 
07.
  call :Sub 
08.
))>"%~dp1neues-%~nx1" 
09.
if exist "%~1.tmp" del "%~1.tmp" 
10.
exit /b 0 
11.
:Sub 
12.
if "!OS!" neq "%OS%" setlocal enabledelayedexpansion 
13.
if "!Line:~-1!" equ " " set "Line=!Line:~ 0, -1!" &goto :Sub 
14.
echo(!Line:*:=! 
15.
goto :eof
[Edit] löschen der tmp-datei nachgetragen. [/Edit]

Gruß Phil
Bitte warten ..
Mitglied: mycroftone
10.05.2012 um 14:51 Uhr
Vielen Dank für die zahlreichen Vorschläge.

Ich werde es morgen ausprobieren.

I
Bitte warten ..
Mitglied: mycroftone
11.05.2012 um 13:02 Uhr
Danke an mak-xxl und Biber die Lösung funktioniert genauso wie gewünscht.

Danke auch an pieh-ejdsch für die UMsetzung meiner Idee.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Leerzeichen am Anfang und Ende löschen

gelöst Frage von Michael-24Batch & Shell17 Kommentare

Hallo zusammen, ich habe bereits einen über 4 Jahre alten Eintrag hier gefunden, was sich mit diesem Thema beschäftigt. ...

Ubuntu

Wie kann man 2 Textdateien vergleichen (OHNE SORTIERUNG!) und die gleiche Zeilen in einer Datei lassen und den Rest löschen?

gelöst Frage von takitanoUbuntu11 Kommentare

Ich habe 2 Textdateien mit deutschen Wörtern. Erste Datei ist nach Häufigket von Wörtern sortiert (frequency list) und zweite ...

Batch & Shell

Per Batch erste 15 Zeichen in jeder Zeile einer Textdatei lassen. Den Rest - löschen. Wie?

gelöst Frage von takitanoBatch & Shell9 Kommentare

Hallo an alle, ich habe folgendes Problem: in einer Texdatei habe ich ca. 60.000.000 Zeilen (453 MB) Jede Zeile ...

Batch & Shell

In allen Textdateien eines bestimmten Pfades die Zeilen x bis Ende löschen

gelöst Frage von SchlothBatch & Shell2 Kommentare

Hallo zusammen, ich möchte für alle Textdateien, die unter einem bestimmten Pfad (z.B. Z:\Test\) abgelegt sind, nur die ersten ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 11 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 21 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 21 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 22 StundenHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux25 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL18 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server14 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...

Hardware
Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall
Information von kgbornHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...