volkerku
Goto Top

Bearbeitung einer csv-Datei

Hallo,

ich habe folgebndes Problem,.
Ich habe ein eine Tabelle in iner csv-Datei.
Die Spalten werden durch Semikolon getrennt. Die Texte sind mit Anführungszeichen begrenzt.

Also folgender Aufbau:
"Kundennummer";"Vorname";"Nachname";"Firma"

Jetzt möchte ich gerne die ersten 3 Spalten zusammenfassen, das folgendes raus kommt:

"Kundennummer Vorname Nachname";"Firma"

Ich habe absolut keinen Plan wie das geht und habe leider auch noch nichts im Forum gefunden.
Über Hilfe wäre ich sehr, sehr dankbar.

Vielen Dank.

Volker

Content-Key: 226518

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

Printed on: April 18, 2024 at 21:04 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Jan 13, 2014 at 12:25:25 (UTC)
Goto Top
Excel? Spalten zusammenfügen müsste das sein.
Member: Xolger
Xolger Jan 13, 2014 updated at 12:32:40 (UTC)
Goto Top
Hallo,

ich würde auch über Excel gehen.
csv importieren (Semikolon getrennt)
Spalte D neu einfügen
in D1 eintragen:
=VERKETTEN(A1," ",B1," ",C1)  
und runterkopieren
Spalte D kopieren->Inhalte einfügen -> Werte
Spalte A-C löschen
Speichern als csv Trennzeichen getrennt
Fertig.


Gruß
Xolger
Member: VolkerKu
VolkerKu Jan 13, 2014 at 12:47:04 (UTC)
Goto Top
Danke für die Infos.
Ich kann muss dies leider per Bacth lösen, Excel ghet leider nicht.
Member: falscher-sperrstatus
falscher-sperrstatus Jan 13, 2014 at 12:47:52 (UTC)
Goto Top
Member: VolkerKu
VolkerKu Jan 13, 2014 at 12:51:10 (UTC)
Goto Top
Nee windows 7.
Danke für den Link. Aber ich möchte ja nix convertieren, ich möchte die ersten zwei ";" durch eine Leerzeichen ersetzten.
Member: colinardo
colinardo Jan 13, 2014 updated at 12:55:26 (UTC)
Goto Top
Hallo Volker,
Powershell gefällig?
$in = "C:\csvdatei.csv"  
$out = "C:\korrigiert.csv"  
$newcsv = @()
import-csv $in -Delimiter ";" | %{$newcsv += New-Object PSObject -Property @{"Kundennummer Vorname Nachname"="$($_.Kundennummer) $($_.Vorname) $($_.Nachname)";"Firma"=$_.Firma}}  
$newcsv | Export-Csv $out -Delimiter ";" -NoTypeInformation -Encoding UTF8  
Grüße Uwe
Member: VolkerKu
VolkerKu Jan 13, 2014 at 12:59:57 (UTC)
Goto Top
Hallo Uwe,

das ist ja super, ich habe noch nie mit Powershell gearbeitet.
Macht der das jetzt für jede Zeile in der Datei?
Wie baue ich dies in einer Datei ein, sowas wie ein Bat?

Sorry für dei dummen Fragen, aber das ist wirklcih nicht meine Welt.

Gruß

Volker
Member: colinardo
colinardo Jan 13, 2014 at 13:01:59 (UTC)
Goto Top
Zitat von @VolkerKu:
das ist ja super, ich habe noch nie mit Powershell gearbeitet.
Macht der das jetzt für jede Zeile in der Datei?
Ja
Wie baue ich dies in einer Datei ein, sowas wie ein Bat?
Sorry für dei dummen Fragen, aber das ist wirklcih nicht meine Welt.
Liest du hier:
http://www.windowspro.de/andreas-kroschel/powershell-scripts-ausfuehren

Grüße Uwe
Member: falscher-sperrstatus
falscher-sperrstatus Jan 13, 2014 at 13:02:46 (UTC)
Goto Top
Du packst das ganze in eine .ps1 Datei.
Member: colinardo
colinardo Jan 13, 2014 updated at 13:06:53 (UTC)
Goto Top
Zitat von @falscher-sperrstatus:

Du packst das ganze in eine .ps1 Datei.
aber vorher noch ein
Set-ExecutionPolicy RemoteSigned
in einer Powershell-Konsole ausführen. Dann kannst du die PS1-Datei über Rechtsklick > Mit Powershell ausführen starten, oder mit dem Namen des Scripts in der Powershell-Konsole ausführen. Steht ja alles oben im Link, muss man ja nicht 10 mal am Tag wiederholen face-wink
Member: falscher-sperrstatus
falscher-sperrstatus Jan 13, 2014 at 13:08:36 (UTC)
Goto Top
Zitat von @colinardo:

> Zitat von @falscher-sperrstatus:
>
> Du packst das ganze in eine .ps1 Datei.
aber vorher noch ein
> Set-ExecutionPolicy RemoteSigned
> 
in einer Powershell-Konsole ausführen. Dann kannst du die PS1-Datei über Rechtsklick > Mit Powershell
ausführen
starten, oder mit dem Namen des Scripts in der Powershell-Konsole ausführen. Steht ja alles oben im Link,
muss man ja nicht 10 mal am Tag wiederholen face-wink

Da hast du definitiv Recht, hat sich nur überschnitten.
Member: Endoro
Endoro Jan 13, 2014 at 20:58:07 (UTC)
Goto Top
Hey,
cmd geht natürlich auch:
for /f tokens^=1-4delims^=^;^" %a in (""Kundennummer";"Vorname";"Nachname";"Firma"") do @echo "%a %b %c";"%d"  
"Kundennummer Vorname Nachname";"Firma"
und aus einer Datei mit Batch:
(for /f "tokens=1-4delims=;"  %%a in (file.txt) do echo "%%~a %%~b %%~c";"%%~d")>out.txt  
Gruss.
Member: VolkerKu
VolkerKu Jan 21, 2014 at 07:13:23 (UTC)
Goto Top
Hallo,
sorry für das späte Feedback.

Vielen Dank für die tolle Hilfe.

Ich habe mich für dei Lösung von Endoro entschieden.

Viele Grüße

Volker