X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=csv_ripper;h=99c4ff00eba63f674145ea2cd015a8cd91530e8a;hp=99e047cd145323a626b5af9225c65a9dbe4bb744;hb=9279b06588202c95ec978c72ec0ad471f5a5f7c1;hpb=86a6483dcbc8afc774e3e666f360ea940cd6b0d3 diff --git a/csv_ripper b/csv_ripper index 99e047c..99c4ff0 100755 --- a/csv_ripper +++ b/csv_ripper @@ -1,7 +1,23 @@ #!/usr/bin/perl +# Copyright 2009-2012, Equinox Software, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + # TODO -# +# # * add getopt support # * use tag generator to expand list of wanted fields? # * insertion of constant-value fields @@ -14,15 +30,16 @@ use warnings; use Text::CSV; -my $csv = Text::CSV->new({escape_char => "+", allow_loose_quotes => 1}); +my $csv = Text::CSV->new( {binary => 1}); open CSV, '<', shift or die "Can't open file $!\n"; while () { $csv->parse($_); + die "Bad data on line $.\n$_\n" if ($csv->error_diag); my @chunks = $csv->fields; my @out = (); - for (@ARGV) - { push @out, $chunks[$_]} + for my $chunk (@ARGV) + { push @out, $chunks[$chunk] } print join("\t", @out), "\n"; }