Mercurial > repos > devteam > condense_characters
comparison condense_characters.pl @ 0:5c87e8fdf38b draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/condense_characters commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
author | devteam |
---|---|
date | Mon, 09 Nov 2015 11:24:51 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:5c87e8fdf38b |
---|---|
1 #! /usr/bin/perl -w | |
2 | |
3 use strict; | |
4 use warnings; | |
5 | |
6 # condenses all consecutive characters of one type | |
7 # convert_characters.pl [input] [character] [output] | |
8 | |
9 die "Check arguments" unless @ARGV == 3; | |
10 | |
11 my $inputfile = $ARGV[0]; | |
12 my $character = $ARGV[1]; | |
13 my $outputfile = $ARGV[2]; | |
14 | |
15 | |
16 my $convert_from; | |
17 my $convert_to; | |
18 | |
19 | |
20 if ($character eq "s") | |
21 { | |
22 $convert_from = '\s'; | |
23 } | |
24 elsif ($character eq "T") | |
25 { | |
26 $convert_from = '\t'; | |
27 } | |
28 elsif ($character eq "Sp") | |
29 { | |
30 $convert_from = " "; | |
31 } | |
32 elsif ($character eq "Dt") | |
33 { | |
34 $convert_from = '\.'; | |
35 } | |
36 elsif ($character eq "C") | |
37 { | |
38 $convert_from = ","; | |
39 } | |
40 elsif ($character eq "D") | |
41 { | |
42 $convert_from = "-"; | |
43 } | |
44 elsif ($character eq "U") | |
45 { | |
46 $convert_from = "_"; | |
47 } | |
48 elsif ($character eq "P") | |
49 { | |
50 $convert_from = '\|'; | |
51 } | |
52 else | |
53 { | |
54 die "Invalid value specified for convert from\n"; | |
55 } | |
56 | |
57 | |
58 if ($character eq "T") | |
59 { | |
60 $convert_to = "\t"; | |
61 } | |
62 elsif ($character eq "Sp") | |
63 { | |
64 $convert_to = " "; | |
65 } | |
66 elsif ($character eq "Dt") | |
67 { | |
68 $convert_to = "\."; | |
69 } | |
70 elsif ($character eq "C") | |
71 { | |
72 $convert_to = ","; | |
73 } | |
74 elsif ($character eq "D") | |
75 { | |
76 $convert_to = "-"; | |
77 } | |
78 elsif ($character eq "U") | |
79 { | |
80 $convert_to = "_"; | |
81 } | |
82 elsif ($character eq "P") | |
83 { | |
84 $convert_to = "|"; | |
85 } | |
86 else | |
87 { | |
88 die "Invalid value specified for Convert to\n"; | |
89 } | |
90 | |
91 my $fhIn; | |
92 open ($fhIn, "< $inputfile") or die "Cannot open source file"; | |
93 | |
94 my $fhOut; | |
95 open ($fhOut, "> $outputfile"); | |
96 | |
97 while (<$fhIn>) | |
98 { | |
99 my $thisLine = $_; | |
100 chomp $thisLine; | |
101 $thisLine =~ s/${convert_from}+/$convert_to/g; | |
102 print $fhOut $thisLine,"\n"; | |
103 } | |
104 close ($fhIn) or die "Cannot close source file"; | |
105 close ($fhOut) or die "Cannot close output file"; |