Hilfe bei schreiben einer batch-Skript zu Parsen von CSV-Datei und Ausgabe einer text-Datei

Ich bin kämpfen, um die Erstellung einer batch-script zum Lesen einer CSV-Datei wie unten

Name:, City:, Country:
Mark, London, UK
Ben, Paris, France
Tom, Athens, Greece

Gibt es eine Kopfzeile in der CSV-Datei. Es sollte die Ausgabe in eine text-Datei wie folgt:

Name:Mark
City:London
Country:UK

Name:Ben
City:Paris
Country:France

Name:Tom
City:Athens
Country:Greece

Das Trennzeichen (:) in der obigen Ausgabe wird voraussichtlich in der header-Zeile selbst. Also alle, die ich tun müssen, verketten Sie das Feld Bezeichnung und Ihr Wert.

Die Anzahl der Spalten in dieser CSV-Datei ist nicht behoben, also sollte das script nicht zu begrenzen 3 Token. Bitte helfen!

  • sprachneutral (kann ich liefern Hinweise, wie dieses Problem zu lösen, das in perl)?
  • Dank Programmierung in perl ist nicht beunruhigend mich.use strict; use Data::Dumper; my $filename = $ARGV[0]; open FILE, $filename or die; my $header = <FILE>; my @keys = split /,/, $header; my @data; for my $line (<FILE>){ chomp; my @values = split /,/, $line; my %data_rows; @data_rows{@keys} = @values; push @data, %data_rows; } print Dumper(\\@data); Aber ich brauche eine Windows-batch-Skript-Lösung. Ich finde es schwierig, in vollem Umfang mit dem batch-Skript.
  • 1. Da sind immer Leerzeichen nach den Kommas? 2. Können Token (ob Header oder-Werte), Leerzeichen enthalten? 3. Gibt es eine maximal mögliche Anzahl von Token? 4. Können Token Kommas enthalten?
  • 1.Es wird kein Leerzeichen nach dem Komma, obwohl es besser wäre zu fangen, der Fall. 2. Token können keine Leerzeichen enthalten. 3. Die keine. der Token ist nicht behoben. Allerdings, wenn Sie beziehen sich auf maximal zulässige Token ja, kann sein fest auf einen vernünftigen Wert (10 oder so). 4. Token strikt enthalten, nicht Kommas.
  • Die perl-Lösung, die ich herausgefunden getan werden kann, mit einem one-liner selbst. perl -F, -lane "if ($.==1) {@keys = @F} else{print @keys[$_].$F[$_] foreach(0..$#F)} " Warum Brauch ich batch-Skript ist, weil es einfacher ist, gemeinsam mit meinen Kolleginnen und Kollegen, die möglicherweise nicht die Rechte zur Installation von perl auf Ihre Maschinen.
  • Es sei denn, deine Kollegen haben absurd alten Windows-Maschinen, haben Sie Zugriff auf VBScript und JScript, keine Notwendigkeit, etwas zu installieren neu. Entweder dieser ist wesentlich schöner zu Programmieren als batch-Sprache.
  • Stimmt... für einige Grund, der nicht durch meinen Kopf. Auch wenn ich nicht tüchtig an ist, werde ich versuchen, einen code aus ihm heraus. Inzwischen, wenn Sie etwas fertig haben, um zu starten, bitte teilen. Diese Art der Aufgabe ist durchaus üblich und zu wiederholen, ich bin sicher, dass viele Leute es nützlich finden.
  • OK, ich habe um zu tun, ein Vbscript für diese Funktion (habe ich gerade geändert, ein code-Beispiel zur Verfügung, auf dem Netz). Ich Teile es, damit andere es verwenden können.

InformationsquelleAutor Benny | 2011-06-24
Schreibe einen Kommentar