annotate changeCase.pl @ 0:cdafd391b29f draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
author devteam
date Mon, 09 Nov 2015 11:22:13 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
1 #! /usr/bin/perl -w
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
2
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
3 use strict;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
4 use warnings;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
5
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
6 my $columns = {};
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
7 my $del = "";
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
8 my @in = ();
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
9 my @out = ();
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
10 my $command = "";
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
11 my $field = 0;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
12
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
13 # a wrapper for changing the case of columns from within galaxy
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
14 # isaChangeCase.pl [filename] [columns] [delim] [casing] [output]
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
15
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
16 die "Check arguments: $0 [filename] [columns] [delim] [casing] [output]\n" unless @ARGV == 5;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
17
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
18 # process column input
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
19 $ARGV[1] =~ s/\s+//g;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
20 foreach ( split /,/, $ARGV[1] ) {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
21 if (m/^c\d{1,}$/i) {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
22 s/c//ig;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
23 $columns->{$_} = --$_;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
24 }
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
25 }
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
26
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
27 die "No columns specified, columns are not preceeded with 'c', or commas are not used to separate column numbers: $ARGV[1]\n" if keys %$columns == 0;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
28
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
29 my $column_delimiters_href = {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
30 'TAB' => q{\t},
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
31 'COMMA' => ",",
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
32 'DASH' => "-",
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
33 'UNDERSCORE' => "_",
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
34 'PIPE' => q{\|},
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
35 'DOT' => q{\.},
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
36 'SPACE' => q{\s+}
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
37 };
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
38
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
39 $del = $column_delimiters_href->{$ARGV[2]};
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
40
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
41 open (OUT, ">$ARGV[4]") or die "Cannot create $ARGV[4]:$!\n";
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
42 open (IN, "<$ARGV[0]") or die "Cannot open $ARGV[0]:$!\n";
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
43 while (<IN>) {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
44 chop;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
45 @in = split /$del/;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
46 for ( my $i = 0; $i <= $#in; ++$i) {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
47 if (exists $columns->{$i}) {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
48 push(@out, $ARGV[3] eq 'up' ? uc($in[$i]) : lc($in[$i]));
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
49 } else {
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
50 push(@out, $in[$i]);
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
51 }
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
52 }
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
53 print OUT join("\t",@out), "\n";
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
54 @out = ();
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
55 }
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
56 close IN;
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
57
cdafd391b29f planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/change_case commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
58 close OUT;