From c91ceea2f4392b735b9ab87109d7bee9160637cd Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 15 Mar 2009 19:45:44 +0000 Subject: [PATCH] convert CSV file to yaml --- bin/csv2yaml.pl | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 bin/csv2yaml.pl diff --git a/bin/csv2yaml.pl b/bin/csv2yaml.pl new file mode 100755 index 0000000..9a81901 --- /dev/null +++ b/bin/csv2yaml.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +# cvs2dbi.pl +# +# 03/15/2009 05:06:53 PM CET Dobrica Pavlinusic + +use Data::Dump qw/dump/; +use File::Slurp; +use YAML qw/DumpFile/; +use Text::CSV; +use Encode qw/decode/; + +my $debug = 0; + +my $path = shift @ARGV || die "usage: $0 file.csv\n"; + +my $csv = read_file( $path ); +$csv = decode('utf-16', $csv); + +my @columns; + +foreach my $line ( split(/\r?\n/, $csv) ) { + + warn "## $line\n"; + + my @fields = split(/;/, $line); + if ( ! @columns ) { + @columns = @fields; + warn "# columns = ",dump( @columns ) if $debug; + next; + } + + my $hash; + + warn "# fields = ",dump( @fields ) if $debug; + + $hash->{ $columns[$_] } = $fields[$_] foreach ( 0 .. $#fields ); + + warn dump( $hash ) if $debug; + + my $uuid = $fields[0]; + + DumpFile( "yaml/$uuid.yaml", $hash ); +} -- 2.20.1