csv Datei um unnötige Spalten erleichtern

21/04/2010
Exports aus Datenbanken kommen ja gerne als CSV-Datei daher, diese sind mit Kommas separiert, manchmal sind aber in den Werten selber auch Kommas also z.B. "hubi","hubionmac","90,95€",22 Das Problem ist also, dass man nicht einfach an Hand der , die Zeile aufsplitten kann, sondern auch darauf achten muss, ob ein Komma in Anführungszeichen eingeschlossen ist oder nicht.
Ich wollte dafür ursprünglich ein kleines Ruby-Skript schreibe, scheiterte aber an meinen noch recht bescheidenen Kenntnissen von passenden regulären Ausdrücken.
Damit aber nun jetzt zumindest schon mal eine halbwegs schnelle Lösung (die könnte man auch noch etwas verbessern, gerade was das schreiben der Datei angeht) da ist, habe ich dieses Script geschrieben, welches sich einer etwas längeren awk-Zeile bedient, um die Werte einer solchen CSV-Datei auszulesen. Man wählt die CSV-Datei aus, gibt des Skript auf dem Weg noch die Spalten mit, die man haben möchte und schon wird ein neue CSV-Datei mit den gewünschten Spalten-Werten erstellt und geöffnet.
Den Quellcode bekomme ich leider ums Verrecken hier nicht fehlerfrei gepostet, da in dem awk-Kommando anscheinend deutlich zu viele Sonderzeichen auftauchen ;-P
Die Datei Skript-Datei also hier zu Download:
csv convert.scpt
1 Comment

Text Encoding in Datei ändern

16/04/2010
Ich brauchte auf die Schnelle ein Skript, mit dem sich eine cvs-Datei die von einem Windows-PC stammt (ISO-8859-1) von der Zeichenkodierung so umstricken lässt, dass ein Mac auf Anhieb (meist UTF-8 oder UTF-16) auch die ganzen Sonderzeichen (öüÖ usw.) korrekt darstellt.
Dieses AppleScript Droplet konvertiert mit iconv die Datei also nach UTF-16 und speicher sie im selben Verzeichnis mit vorrangestelltem _ ab.
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

on open these

tell application "Finder"

if (count of these) is 1 then

repeat with this in these

if name of this ends with ".csv" then

set this_x to POSIX path of this

set this_name to name of this

set this_folder_X to POSIX path of ((container of this) as alias)

do shell script "cd " & quoted form of this_folder_X & ";iconv -f ISO-8859-1 -t UTF-16 " & quoted form of this_x & ">_" & quoted form of (this_name) as text

end if

end repeat

end if

end tell

end open

No Comments