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 Entferne alle semikolons, die am ende einer zeile stehen (wenn vorhanden)

Mitglied: jabali07

jabali07 (Level 1) - Jetzt verbinden

26.03.2012 um 19:28 Uhr, 3034 Aufrufe, 10 Kommentare

konnte mein anliegen leider nicht mit den vorhandenen beiträge beheben. drum habe ich mir erlaubt, meine frage zu posten. falls doch schon so etwas behandelt wurde, bin ich für einen link sehr dankbar.

moin,

ich habe mehrere csv-files mit einigen hundert zeilen, die teilweise ein ";" am ende der zeile aufweisen.
leider tritt das völlig unregelmäßig auf: die eine zeile hat ein ";" am ende, die nächste nicht.
ich brauche die csv-files ohne semikolon.

gibt's eventuell eine möglichkeit zu sagen: entferne alle semikolons (wenn vorhanden), die am ende einer zeile stehen ?

das fragt sich... jabali07
Gruß & Danke
Mitglied: MrNetman
26.03.2012 um 19:36 Uhr
Hi Jaba,

in Word geht das ganz leicht.
Öffne die Datei mit Word.
suchen und ersetzen - erweitern
Suche nach "';^p" ersetze durch "^p"

läuft.

Gruß
Netman
P.S: würde in Office passen.
Bitte warten ..
Mitglied: bastla
26.03.2012 um 20:18 Uhr
Hallo jabali07!

Etwa so (falls es jeweils nur ein Semikolon am Ende der Zeile geben kann):
01.
@echo off & setlocal 
02.
set "Ordner=D:\Der Ordner mit den vielen CSV" 
03.
set "Dateien=*.csv" 
04.
 
05.
set T=%temp%\CSVTemp.txt 
06.
pushd "%Ordner%" 
07.
for /f "delims=" %%i in ('dir /b "%Dateien%"') do ( 
08.
  move "%%i" %T% 
09.
10.
    for /f "eol=§" %%a in (%T%) do ( 
11.
      set "Zeile=%%a" 
12.
      setlocal enabledelayedexpansion 
13.
      if "!Zeile:~-1!"==";" (echo(!Zeile:~,-1!) else (echo !Zeile!) 
14.
      endlocal 
15.
16.
  )>"%%i" 
17.
18.
popd
Mit "§" ist übrigens ein Zeichen gemeint, das nicht in den Dateien vorkommt ...
Falls auch mehrere Semikola am Zeilenende stehen könnten:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Der Ordner mit den vielen CSV" 
03.
set "Dateien=*.csv" 
04.
 
05.
set T=%temp%\CSVTemp.txt 
06.
pushd "%Ordner%" 
07.
for /f "delims=" %%i in ('dir /b "%Dateien%"') do ( 
08.
  move "%%i" %T% 
09.
  for /f "eol=§" %%a in (%T%) do set "Zeile=%%a" & call :ProcessLine "%%i" 
10.
11.
popd 
12.
goto :eof 
13.
 
14.
:ProcessLine 
15.
if not defined Zeile goto :Done 
16.
if "%Zeile:~-1%" neq ";" goto :Done 
17.
set "Zeile=%Zeile:~,-1%" 
18.
goto :ProcessLine 
19.
 
20.
:Done 
21.
setlocal enabledelayedexpansion 
22.
>>%1 echo(!Zeile! 
23.
endlocal 
24.
goto :eof
Grüße
bastla

[Edit] echo\ durch echo( ersetzt [/Edit]
Bitte warten ..
Mitglied: 64748
27.03.2012 um 00:14 Uhr
Guten Abend,

also für so eine Aufgabe würde ich kein Programm schreiben. Ich nutze auch auf Windowsrechnern den Editor vim, folgendes Kommando kann man in vim verwenden:
:%s/;$//
wenn man die entsprechende Datei geöffnet hat, im einzelnen bedeutet das Kommando % (gesamte Datei), s (ersetze) ;$ (Semikolon am Zeilenende) // (nix)
Falls, wie bastla vermutet, auch mehrere Semikola am Zeilenende stehen können funktioniert auch
:%s/;\+$//
auf einem Linuxrechner geht's natürlich auch mit sed
sed -i "s/;$//" Dateiname
auch hier der allgemeine Fall mit mehreren Semikola am Ende
sed -i "s/;\+$//" Dateiname
Ich hab im Job auch meistens mit Windows zu tun, aber es gibt Dinge, die kann ich mit Unix-Werkzeugen einfacher erledigen. Nix für ungut.

Markus
Bitte warten ..
Mitglied: bastla
27.03.2012 um 00:24 Uhr
Hallo hmarkus!
also für so eine Aufgabe würde ich kein Programm schreiben.
Ich doch auch nicht - ist ja nur ein Stückchen Script (und kommt mit Bordmitteln aus) ...

Grüße
bastla
Bitte warten ..
Mitglied: jabali07
30.03.2012 um 18:24 Uhr
Hallo zusammen,

vielen, lieben Dank für die investierte Zeit.
Für mich IT-Depp ist das wirklich eine super Hilfe.

Ich habe die Vorschläge einmal durchprobiert. (Sogar die Linux-Nummer)

Leider hat das nicht zu dem gewünschten Ergebnissen geführt. Das liegt bestimmt an meinen stümperhaften Beschreibungen.
Ich versuche das noch einmal konkret zu gestalten:

Ausgang: (csv-file mit Inhalt wie folgt)

"Invite";"Invitar";
"OK, thanks!";"¡de acuerdo, gracias!";
"Invite Your Friends";"Invita a tus amigos";
"Custom Message";"Mensaje personalizado";

Gewünschtes Ergebnis: (csv-file mit Inhalt wie folgt)

"Invite";"Invitar"
"OK, thanks!";"¡de acuerdo, gracias!"
"Invite Your Friends";"Invita a tus amigos"
"Custom Message";"Mensaje personalizado"

Also halt genauso wie der Ausgang, nur ohne finales ";"

Wenn ich das Script von baslta laufen lasse, kommt folgendes heraus:

Zeile:~,-1
"OK,
"Invite
"Custom

Gibt's noch eine Idee, wie das funktionieren könnte?

Ein schönes Wochenende an alle
jabali
Bitte warten ..
Mitglied: 64748
30.03.2012 um 19:11 Uhr
Hallo jabali,

ich nehme an, es ist das Skript von bastla was bei Dir nicht richtig funktioniert. Bist Du denn sicher, dass Du es richtig abgetippt (bzw. kopiert hast?).

Poste hier mal bitte das Skript, welches Du benutzt.

Markus
Bitte warten ..
Mitglied: jabali07
30.03.2012 um 19:37 Uhr
Hallo Markus,

danke für deine Antwort.
Ich benutze das folgende Script:

@echo off & setlocal

set "Ordner=C:\Folder_01"
set "Dateien=test.csv"
set T=%temp%\CSVTemp.txt
pushd "%Ordner%"

for /f "delims=" %%i in ('dir /b "%Dateien%"') do (

move "%%i" %T%

(

for /f "eol=§" %%a in (%T%) do (

set "Zeile=%%a"

setlocal enabledelayedexpansion

if "!Zeile:~-1!"==";" (echo\!Zeile:~,-1!) else (echo !Zeile!)

endlocal

)

)>"%%i"

)

popd


Das funktioniert auch klasse -ohne Fehlermeldung-, nur ist das Ergebnis nicht ganz, wie gewünscht.

Gruß, jabali
Bitte warten ..
Mitglied: mak-xxl
30.03.2012 um 19:57 Uhr
Moin jabali07,

ich bin gerade über den Beitrag gestolpert und habe die Lösung von bastla vor ein paar Tagen für mich adaptiert, deswegen hier ein Vorschlag:

01.
@echo off & setlocal 
02.
set "Ordner=D:\Der Ordner mit den vielen CSV" 
03.
set "Dateien=*.csv" 
04.
 
05.
set T=%temp%\CSVTemp.txt 
06.
pushd "%Ordner%" 
07.
for /f "delims=" %%i in ('dir /b "%Dateien%"') do ( 
08.
  move "%%i" %T% 
09.
10.
    for /f "delims=" %%a in (%T%) do ( 
11.
      set "Zeile=%%a" 
12.
      setlocal enabledelayedexpansion 
13.
      if "!Zeile:~-1!"==";" (echo !Zeile:~,-1!) else (echo !Zeile!) 
14.
      endlocal 
15.
16.
  )>"%%i" 
17.
18.
popd
Beachte bitte Zeilen 10 und 13.

Viel Erfolg, ein schönes Wochenende und freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: jabali07
30.03.2012 um 20:32 Uhr
Hallo Mario,

funktioniert 1a! Besten Dank für die Korrektur. Bin glücklich!
Dank auch noch einmal an alle anderen, insbesondere an basla, der mir nicht zum ersten mal ein Superscript zur Verfügung gestellt hat.

Gruß + Gracias
jabali
Bitte warten ..
Mitglied: bastla
30.03.2012 um 22:45 Uhr
Hallo Mario!

"delims=" hätte ich auch schon verwenden sollen ...

Das Weglassen von "eol=§" führt allerdings dazu, dass "for /f" Zeilen, die mit einem Semikolon beginnen, ignoriert (da sie dann defaultmäßig als Kommentar interpretiert werden) ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications

VBS-Entfernen von Zeilen in einer Textdatei

Frage von Calim3roVB for Applications5 Kommentare

Hallo zusammen Ich möchte aus einer Textdatei Zeilen entfernen. Ich habe drei Dateien, in Datei "A" stehen Wörter, in ...

Microsoft Office

Excel 2013: Formeln entfernen und Ergebnisse stehen lassen

gelöst Frage von alhambraMicrosoft Office2 Kommentare

Hallo zusammen, sorry für den merkwürdigen Betreff! Ich mache mal besser ein Beispiel: Zelle A1: Hallo Zelle A2: Welt! ...

Windows Tools

Nicht mehr vorhandene Computer aus der AD entfernen

gelöst Frage von M.MarzWindows Tools6 Kommentare

Hallo zusammen, angenommen ich füge einen Rechner namens PC01 in die Domäne hinzu. Dieser wird danach in der AD ...

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 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 5 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 10 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server23 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...