Mercurial > repos > devteam > change_case
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 |
| 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; |
