72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #!/usr/bin/env perl | ||
|  | #=============================================================================== | ||
|  | # | ||
|  | #         FILE: show_metadata | ||
|  | # | ||
|  | #        USAGE: ./show_metadata | ||
|  | # | ||
|  | #  DESCRIPTION: Script to display a file of metadata in a readable format | ||
|  | # | ||
|  | #      OPTIONS: --- | ||
|  | # REQUIREMENTS: --- | ||
|  | #         BUGS: --- | ||
|  | #        NOTES: --- | ||
|  | #       AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com | ||
|  | #      VERSION: 0.0.2 | ||
|  | #      CREATED: 2014-06-09 16:17:11 | ||
|  | #     REVISION: 2014-06-15 12:26:58 | ||
|  | # | ||
|  | #=============================================================================== | ||
|  | 
 | ||
|  | use 5.010; | ||
|  | use strict; | ||
|  | use warnings; | ||
|  | use utf8; | ||
|  | 
 | ||
|  | use List::Util qw{max}; | ||
|  | use Text::CSV_XS; | ||
|  | 
 | ||
|  | # | ||
|  | # Version number (manually incremented) | ||
|  | # | ||
|  | our $VERSION = '0.0.2'; | ||
|  | 
 | ||
|  | # | ||
|  | # Script name | ||
|  | # | ||
|  | ( my $PROG = $0 ) =~ s|.*/||mx; | ||
|  | 
 | ||
|  | # | ||
|  | # Enable Unicode mode | ||
|  | # | ||
|  | binmode STDOUT, ":encoding(UTF-8)"; | ||
|  | binmode STDERR, ":encoding(UTF-8)"; | ||
|  | 
 | ||
|  | my $mdata = shift; | ||
|  | die "Usage: $PROG filename\n" unless $mdata; | ||
|  | 
 | ||
|  | die "File $mdata does not exist\n" unless -e $mdata; | ||
|  | 
 | ||
|  | my $csv = Text::CSV_XS->new({ binary => 1 }); | ||
|  | 
 | ||
|  | open( my $fh, "<:encoding(utf8)", $mdata ) | ||
|  |     or die "Unable to open $mdata: $!\n"; | ||
|  | 
 | ||
|  | my @cols = @{ $csv->getline($fh) }; | ||
|  | my $max = max map { length($_) } @cols; | ||
|  | my $row  = {}; | ||
|  | $csv->bind_columns( \@{$row}{@cols} ); | ||
|  | while ( $csv->getline($fh) ) { | ||
|  |     foreach my $key (@cols) { | ||
|  |         printf "%*s: %s\n", $max, $key, $row->{$key}; | ||
|  |     } | ||
|  |     print '-' x 80, "\n"; | ||
|  | } | ||
|  | 
 | ||
|  | close($fh); | ||
|  | 
 | ||
|  | exit; | ||
|  | 
 | ||
|  | # vim: syntax=perl:ts=8:sw=4:et:ai:tw=78:fo=tcrqn21:fdm=marker | ||
|  | 
 |