offline
Goto Top

Sonderzeichen per Batch aus csv entfernen

Hallo Leute,

ich suche eine schnell möglichkeit aus einer csv datei oder text datei alle " < > / \ zu entfernen. Also auch das Anführungszeichen.
ich bin mir sicher, dass keines davon in der datei benötigt wird face-wink

danke für eure hilfe.

Content-Key: 78151

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: rubberduck
rubberduck 15.01.2008 um 08:17:45 Uhr
Goto Top
Hallo Offline

Mit Batch geht es sicher auch, aber wäre ein VBScript auch möglich?
Oder "Suchen - Ersetzen" vielleicht...als ziemlich simple Möglichkeit...? face-wink
Mitglied: Biber
Biber 15.01.2008 um 10:04:08 Uhr
Goto Top
Moin OFFLINE,

wenn es Deine Anforderung richtig verstehe, dann rankt es sich ja auch diese Zeile aus dem ursprünglichen Thread leerzeichen am anfang und ende...:

...
FOR /F "eol=# delims=" %%z IN (imptest.csv) DO set "Zeile=%%~z" & call :ProcessLine  

Ich würde dann, statt die Imptest.csv direkt zu lesen, lieber eine bereinigte Kopie davon verarbeiten.
Das macht ein temporärer VBS-Oneliner (eigentlich bastlas Spezialität...).

...
set "RUC=%temp%\ReplaceUnwantedChars.vbs"  
set "callRUC=cscript //nologo %RUC%"  
echo Wscript.Echo Replace(Replace(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(wscript.arguments(0)).ReadAll, "\",""),"/",""), chr(34),"")>%RUC%  
FOR /F "eol=# delims=" %%z IN ('%callRuc% imptest.csv') DO set "Zeile=%%~z" & call :ProcessLine  
....

In diesem Beispiel wird mit dreimaligem Replace()--Aufruf jedes "/", "\" und Anführungszeichen durch "nichts" ersetzt.
Eine Erweiterung auf weitere ungeliebte Zeichen bekommst Du selbst hin.
Schlimmstenfalls wird es halt ein Mehrzeiler... <grinz>

Grüße
Biber
Mitglied: bastla
bastla 15.01.2008, aktualisiert am 18.10.2012 um 18:35:18 Uhr
Goto Top
@Biber

Eigentlich hätte ich auch noch mehr aus dem angesprochenen Thread nach VBS verlagert, aber auf meine diesbezügliche Frage (ok, 15.01.2008 um 01:24:11 Uhr ist noch nicht soo lange her face-wink) noch keine Antwort erhalten, und mich zwischenzeitlich doch in Batch versucht ...
Zu der Frage hier: "sed" (zB GNU sed version 3.02.80 - etwa von hier) ist ja noch gar nicht erwähnt worden ...

Grüße
bastla
Mitglied: Biber
Biber 15.01.2008 um 13:01:03 Uhr
Goto Top
Moin bastla,

Eigentlich hätte ich auch noch mehr aus dem angesprochenen Thread nach VBS verlagert,..

Ja, hatte ich auch gelesen.
Die eigentliche Aufgabe ist ja auch schmerzfrei mit Batch/einer For/F-Anweisung erledigt.
Nur kommen ja gleich zwei Sonderfälle vor (mehr als 9 Parameter UND Batch-Steuerzeichen im Text). die einen Oneliner zwar nicht unmöglich, aber zwar wartbar machen... face-wink

Meine Unterstützung hast Du für einen reinen VBS-Schnipsel hier auf jeden Fall.
SED wäre ja hier nur ein trotziges "Es geht aber auch ohne VBS." bzw. überdimensioniert für jemanden, der es halt nicht standardmäßig im %path% installiert hat.

Grüße
Biber
Mitglied: bastla
bastla 15.01.2008 um 13:11:34 Uhr
Goto Top
@Biber

SED wäre ja hier nur ein trotziges "Es geht aber auch ohne VBS."
Noch nicht einmal - da ich im anderen Thread ohnehin schon bezichtigt wurde, das Ganze zum Spaß zu machen, hätte ich schon noch etwas weitergebatcht ... face-wink

Ich finde nur einfach einen derartigen Thread ohne Hinweis auf "sed" irgendwie unvollständig ...

Grüße
bastla
Mitglied: Biber
Biber 16.01.2008 um 09:28:16 Uhr
Goto Top
Moin OFFLINE,

so interessant die Diskussion hier auch sein mag - hilft es dir denn weiter?
Bzw. kann der Thread als "gelöst" angesehen werden?

Grüße
Biber
Mitglied: OFFLINE
OFFLINE 16.01.2008 um 14:10:33 Uhr
Goto Top
Hallo Leute,

ich konnte das Problem mit bastlas hilfe im anderen thread schon lösen.
ich lese die datei zeilenweise ein, und ersetze die ungewollten zeichen durch nichts.

weiter gehts im anderen thread *g*