annotate bin/ExtractFromTextFiles.pl @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1 #!/usr/bin/perl -w
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: ExtractFromTextFiles.pl,v $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
4 # $Date: 2015/02/28 20:46:19 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
5 # $Revision: 1.42 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
6 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
7 # Author: Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
8 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
10 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
11 # This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
12 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
14 # the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
15 # Software Foundation; either version 3 of the License, or (at your option) any
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
16 # later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
17 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
18 # MayaChemTools is distributed in the hope that it will be useful, but without
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
19 # any warranty; without even the implied warranty of merchantability of fitness
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
20 # for a particular purpose. See the GNU Lesser General Public License for more
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
21 # details.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
22 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
23 # You should have received a copy of the GNU Lesser General Public License
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
26 # Boston, MA, 02111-1307, USA.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
27 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
28
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
29 use strict;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
30 use FindBin; use lib "$FindBin::Bin/../lib";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
31 use Getopt::Long;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
32 use File::Basename;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
33 use Text::ParseWords;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
34 use FileHandle;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
35 use Benchmark;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36 use FileUtil;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37 use TextUtil;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39 my($ScriptName, %Options, $StartTime, $EndTime, $TotalTime);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41 # Autoflush STDOUT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 $| = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44 $StartTime = new Benchmark;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46 # Starting message...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47 $ScriptName = basename $0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 print "\n$ScriptName:Starting...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50 # Get the options and setup script...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51 SetupScriptUsage();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 if ($Options{help} || @ARGV < 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53 die GetUsageFromPod("$FindBin::Bin/$ScriptName");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56 my(@TextFilesList);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 @TextFilesList = ExpandFileNames(\@ARGV, "csv tsv");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59 # Process options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60 print "Processing options...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61 my(%OptionsInfo);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62 ProcessOptions();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64 # Collect column information for all the text files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65 print "Checking input text file(s)...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66 my(%TextFilesInfo);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67 RetrieveTextFilesInfo();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68 RetrieveColumnsAndRowsInfo();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70 # Generate output files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 my($FileIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72 if (@TextFilesList > 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73 print "\nProcessing text files...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75 for $FileIndex (0 .. $#TextFilesList) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 if ($TextFilesInfo{FileOkay}[$FileIndex]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 print "\nProcessing file $TextFilesList[$FileIndex]...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78 ExtractFromTextFile($FileIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 print "\n$ScriptName:Done...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83 $EndTime = new Benchmark;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 $TotalTime = timediff ($EndTime, $StartTime);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85 print "Total time: ", timestr($TotalTime), "\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87 ###############################################################################
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89 # Extract appropriate data from text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90 sub ExtractFromTextFile {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91 my($Index) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 if ($OptionsInfo{Mode} =~ /^categories$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94 ExtractCategoryData($Index);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96 elsif ($OptionsInfo{Mode} =~ /^rows$/i){
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97 ExtractRowsData($Index);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100 ExtractColumnData($Index);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104 # Geneate category files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 sub ExtractCategoryData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106 my($Index) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107 my($TextFile, $CategoryCol, $NewTextFile, $InDelim, @ColLabels);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109 $TextFile = $TextFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111 $NewTextFile = $TextFilesInfo{OutFile}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 $CategoryCol = $TextFilesInfo{CategoryColNum}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114 @ColLabels = @{$TextFilesInfo{ColLabels}[$Index]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 my($Line, @LineWords, $CategoryName, $CategoryCount, %CategoriesNameToCountMap, %CategoriesNameToLinesMap);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117 # Collect category data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 open TEXTFILE, "$TextFile" or die "Couldn't open $TextFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 # Skip label line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120 $_ = <TEXTFILE>;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122 %CategoriesNameToCountMap = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123 %CategoriesNameToLinesMap = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 while ($Line = GetTextLine(\*TEXTFILE)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127 $CategoryName = ($CategoryCol <= @LineWords) ? $LineWords[$CategoryCol] : "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128 if (exists($CategoriesNameToCountMap{$CategoryName})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129 $CategoriesNameToCountMap{$CategoryName} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 push @{$CategoriesNameToLinesMap{$CategoryName}}, $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133 $CategoriesNameToCountMap{$CategoryName} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134 @{$CategoriesNameToLinesMap{$CategoryName}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135 push @{$CategoriesNameToLinesMap{$CategoryName}}, $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138 close TEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140 # Setup file names for individual category files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141 my(%CategoriesNameToFileHandleMap, %CategoriesNameToFileNameMap, $CategoryFile, $CategoryFileHandle);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143 %CategoriesNameToFileHandleMap = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144 %CategoriesNameToFileNameMap = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146 for $CategoryName (keys %CategoriesNameToCountMap) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147 $CategoryFile = $TextFilesInfo{CategoryOutFileRoot}[$Index] . "$CategoryName" . ".$TextFilesInfo{OutFileExt}[$Index]";;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148 $CategoryFile =~ s/ //g;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149 $CategoryFileHandle = new FileHandle;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 open $CategoryFileHandle, ">$CategoryFile" or die "Couldn't open $CategoryFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151 $CategoriesNameToFileNameMap{$CategoryName} = $CategoryFile;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152 $CategoriesNameToFileHandleMap{$CategoryName} = $CategoryFileHandle;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155 # Write out summary file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156 print "Generating file $NewTextFile...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157 open NEWTEXTFILE, ">$NewTextFile" or die "Couldn't open $NewTextFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159 # Write out column labels...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160 @LineWords = ("Category","Count");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162 print NEWTEXTFILE "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164 # Write out the category names and count...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165 for $CategoryName (sort { lc($a) cmp lc($b) } keys %CategoriesNameToCountMap) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 $CategoryCount = $CategoriesNameToCountMap{$CategoryName};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167 @LineWords = ("$CategoryName","$CategoryCount");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169 print NEWTEXTFILE "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171 close NEWTEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173 # Write out a file for each category...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174 my($ColLabelLine, $LineIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176 $ColLabelLine = JoinWords(\@ColLabels, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177 print "\nGenerating text files for each category...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179 for $CategoryName (sort { lc($a) cmp lc($b) } keys %CategoriesNameToCountMap) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180 print "Generating file $CategoriesNameToFileNameMap{$CategoryName}...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181 $CategoryFileHandle = $CategoriesNameToFileHandleMap{$CategoryName};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182 print $CategoryFileHandle "$ColLabelLine\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183 for $LineIndex (0 .. $#{$CategoriesNameToLinesMap{$CategoryName}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 $Line = ${$CategoriesNameToLinesMap{$CategoryName}}[$LineIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187 print $CategoryFileHandle "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 close $CategoryFileHandle;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
193 # Extract data for specific columns...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
194 sub ExtractColumnData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
195 my($Index) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
196 my($TextFile, @ColNumsToExtract, $NewTextFile, $InDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
197
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
198 $TextFile = $TextFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
199 $NewTextFile =$TextFilesInfo{OutFile}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
200 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
201 @ColNumsToExtract = @{$TextFilesInfo{ColNumsToExtract}[$Index]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
202
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
203 print "Generating file $NewTextFile...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
204 open TEXTFILE, "$TextFile" or die "Couldn't open $TextFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
205 open NEWTEXTFILE, ">$NewTextFile" or die "Couldn't open $NewTextFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
206
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
207 $_ = <TEXTFILE>;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
208 # Write out column labels...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
209 my($Line, @LineWords, @ColLabels, $ColLabelLine, @ColValues, $ColValuesLine, $ColNum, $ColValue);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
210 @ColLabels = (); $ColLabelLine = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
211 for $ColNum (@ColNumsToExtract) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
212 push @ColLabels, $TextFilesInfo{ColLabels}[$Index][$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
213 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
214 $ColLabelLine = JoinWords(\@ColLabels, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
215 print NEWTEXTFILE "$ColLabelLine\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
216
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
217 while ($Line = GetTextLine(\*TEXTFILE)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
218 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
219 @ColValues = (); $ColValuesLine = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
220 for $ColNum (@ColNumsToExtract) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
221 $ColValue = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
222 if ($ColNum < @LineWords) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
223 $ColValue = (defined $LineWords[$ColNum]) ? $LineWords[$ColNum] : "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
224 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
225 push @ColValues, $ColValue;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
226 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
227 $ColValuesLine = JoinWords(\@ColValues, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
228 print NEWTEXTFILE "$ColValuesLine\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
229 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
230 close NEWTEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
231 close TEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
232 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
233
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
234 # Extract data for specific rows...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
235 sub ExtractRowsData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
236 my($Index) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
237 my($TextFile, $NewTextFile, $InDelim, $SpecifiedRowsMode);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
238
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
239 $TextFile = $TextFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
240 $NewTextFile =$TextFilesInfo{OutFile}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
241 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
242
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
243 $SpecifiedRowsMode = $OptionsInfo{SpecifiedRowsMode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
244
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
245 print "Generating file $NewTextFile...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
246 open TEXTFILE, "$TextFile" or die "Couldn't open $TextFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
247 open NEWTEXTFILE, ">$NewTextFile" or die "Couldn't open $NewTextFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
248
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
249 my($Line, $RowCount, @LineWords, @ColLabels);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
250
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
251 # Write out column labels...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
252 $Line = <TEXTFILE>;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
253 push @ColLabels, @{$TextFilesInfo{ColLabels}[$Index]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
254 $Line = JoinWords(\@ColLabels, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
255 print NEWTEXTFILE "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
256
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
257 if ($SpecifiedRowsMode =~ /^rowsbycolvalue$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
258 ExtractRowsByColValue($Index, \*TEXTFILE, \*NEWTEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
259 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
260 elsif ($SpecifiedRowsMode =~ /^rowsbycolvaluelist$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
261 ExtractRowsByColValueList($Index, \*TEXTFILE, \*NEWTEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
262 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
263 elsif ($SpecifiedRowsMode =~ /^rowsbycolvaluerange$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
264 ExtractRowsByColValueRange($Index, \*TEXTFILE, \*NEWTEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
265 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
266 elsif ($SpecifiedRowsMode =~ /^(rowbymincolvalue|rowbymaxcolvalue)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
267 ExtractRowByMinOrMaxColValue($Index, \*TEXTFILE, \*NEWTEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
268 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
269 elsif ($SpecifiedRowsMode =~ /^rownums$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
270 ExtractRowsByRowNums($Index, \*TEXTFILE, \*NEWTEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
271 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
272 elsif ($SpecifiedRowsMode =~ /^rownumrange$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
273 ExtractRowsByRowNumRange($Index, \*TEXTFILE, \*NEWTEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
274 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
275
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
276 close NEWTEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
277 close TEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
278 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
279
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
280 # Extract rows by column value...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
281 sub ExtractRowsByColValue {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
282 my($Index, $TextFileRef, $NewTextFileRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
283 my($Line, $ColNum, $ColValue, $Criterion, $Value, $ValueIndex, $InDelim, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
284
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
285 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
286
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
287 LINE: while ($Line = GetTextLine($TextFileRef)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
288 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
289 for ($ValueIndex = 0; $ValueIndex < @{$TextFilesInfo{RowValues}[$Index]}; $ValueIndex = $ValueIndex + 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
290 $ColNum = $TextFilesInfo{RowValues}[$Index][$ValueIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
291 $ColValue = $TextFilesInfo{RowValues}[$Index][$ValueIndex + 1];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
292 $Criterion = $TextFilesInfo{RowValues}[$Index][$ValueIndex + 2];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
293 if ($ColNum > $#LineWords) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
294 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
295 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
296 $Value = $LineWords[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
297 if ($Criterion =~ /^le$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
298 if ($Value > $ColValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
299 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
300 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
301 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
302 elsif ($Criterion =~ /^ge$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
303 if ($Value < $ColValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
304 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
305 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
306 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
307 elsif ($Criterion =~ /^eq$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
308 if ($Value ne $ColValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
309 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
310 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
311 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
312 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
313 # Write it out...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
314 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
315 print $NewTextFileRef "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
316 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
317 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
318 # Extract rows by column value list...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
319 sub ExtractRowsByColValueList {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
320 my($Index, $TextFileRef, $NewTextFileRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
321 my($Line, $ColNum, $ColValue, $ValueIndex, $Value, $InDelim, %ColValueMap, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
322
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
323 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
324 $ColNum = $TextFilesInfo{RowValues}[$Index][0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
325
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
326 # Setup a col value map...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
327 %ColValueMap = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
328 for $ValueIndex (1 .. $#{$TextFilesInfo{RowValues}[$Index]}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
329 $Value = $TextFilesInfo{RowValues}[$Index][$ValueIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
330 $ColValueMap{$Value} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
331 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
332
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
333 LINE: while ($Line = GetTextLine($TextFileRef)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
334 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
335 if ($ColNum > $#LineWords) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
336 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
337 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
338 $ColValue = $LineWords[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
339 if (exists $ColValueMap{$ColValue}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
340 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
341 print $NewTextFileRef "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
342 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
343 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
344 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
345
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
346 # Extract row by minimum column value...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
347 sub ExtractRowByMinOrMaxColValue {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
348 my($Index, $TextFileRef, $NewTextFileRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
349 my($Line, $ColNum, $ColValue, $FirstValue, $ValueLine, $InDelim, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
350
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
351 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
352 $ColNum = $TextFilesInfo{RowValues}[$Index][0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
353
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
354 $ValueLine = ''; $ColValue = ''; $FirstValue = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
355 LINE: while ($Line = GetTextLine($TextFileRef)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
356 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
357 if ($ColNum > $#LineWords) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
358 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
359 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
360 if ($FirstValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
361 $FirstValue = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
362 $ColValue = $LineWords[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
363 $ValueLine = $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
364 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
365 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
366 if ($OptionsInfo{SpecifiedRowsMode} =~ /^rowbymaxcolvalue$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
367 if ($LineWords[$ColNum] > $ColValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
368 $ColValue = $LineWords[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
369 $ValueLine = $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
370 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
371 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
372 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
373 if ($LineWords[$ColNum] < $ColValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
374 $ColValue = $LineWords[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
375 $ValueLine = $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
376 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
377 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
378 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
379 if ($ValueLine) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
380 @LineWords = quotewords($InDelim, 0, $ValueLine);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
381 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
382 print $NewTextFileRef "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
383 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
384 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
385
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
386 # Extract rows by column value range...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
387 sub ExtractRowsByColValueRange {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
388 my($Index, $TextFileRef, $NewTextFileRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
389 my($Line, $ColNum, $ColValue, $MinValue, $MaxValue, $InDelim, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
390
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
391 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
392 $ColNum = $TextFilesInfo{RowValues}[$Index][0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
393 $MinValue = $TextFilesInfo{RowValues}[$Index][1];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
394 $MaxValue = $TextFilesInfo{RowValues}[$Index][2];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
395
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
396 LINE: while ($Line = GetTextLine($TextFileRef)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
397 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
398 if ($ColNum > $#LineWords) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
399 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
400 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
401 $ColValue = $LineWords[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
402 if ($ColValue >= $MinValue && $ColValue <= $MaxValue) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
403 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
404 print $NewTextFileRef "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
405 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
406 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
407 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
408
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
409 # Extract rows by row number range...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
410 sub ExtractRowsByRowNumRange {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
411 my($Index, $TextFileRef, $NewTextFileRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
412
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
413 my($Line, $MinRowNum, $MaxRowNum, $RowCount, $InDelim, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
414 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
415 $MinRowNum = $TextFilesInfo{RowValues}[$Index][0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
416 $MaxRowNum = $TextFilesInfo{RowValues}[$Index][1];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
417
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
418 $RowCount = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
419 LINE: while ($Line = GetTextLine($TextFileRef)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
420 $RowCount++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
421 if ($RowCount >= $MinRowNum && $RowCount <= $MaxRowNum) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
422 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
423 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
424 print $NewTextFileRef "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
425 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
426 elsif ($RowCount > $MaxRowNum) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
427 last LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
428 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
429 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
430 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
431
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
432 # Extract rows by row numbers...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
433 sub ExtractRowsByRowNums {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
434 my($Index, $TextFileRef, $NewTextFileRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
435 my($Line, $RowNum, $MaxRowNum, $RowCount, $InDelim, %RowNumMap, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
436
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
437 $InDelim = $TextFilesInfo{InDelim}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
438
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
439 # Setup a row nums map...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
440 %RowNumMap = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
441 $MaxRowNum = $TextFilesInfo{RowValues}[$Index][0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
442 for $RowNum (@{$TextFilesInfo{RowValues}[$Index]}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
443 if ($RowNum > $MaxRowNum) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
444 $MaxRowNum = $RowNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
445 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
446 $RowNumMap{$RowNum} = $RowNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
447 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
448
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
449 $RowCount = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
450 LINE: while ($Line = GetTextLine($TextFileRef)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
451 $RowCount++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
452 if (exists $RowNumMap{$RowCount}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
453 @LineWords = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
454 $Line = JoinWords(\@LineWords, $OptionsInfo{OutDelim}, $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
455 print $NewTextFileRef "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
456 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
457 elsif ($RowCount > $MaxRowNum) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
458 last LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
459 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
460 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
461 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
462
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
463 # Retrieve text file columns and rows information for specified options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
464 sub RetrieveColumnsAndRowsInfo {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
465 ProcessColumnsInfo();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
466 ProcessRowsInfo();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
467 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
468
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
469 # Make sure the specified columns exists in text files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
470 sub ProcessColumnsInfo {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
471 my($Index, $SpecifiedCategoryCol, $TextFile, @ColNumsToExtract);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
472
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
473 @{$TextFilesInfo{CategoryColNum}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
474 @{$TextFilesInfo{ColNumsToExtract}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
475
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
476 $SpecifiedCategoryCol = $OptionsInfo{SpecifiedCategoryCol};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
477
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
478 FILELIST: for $Index (0 .. $#TextFilesList) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
479 $TextFile = $TextFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
480
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
481 $TextFilesInfo{CategoryColNum}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
482 @{$TextFilesInfo{ColNumsToExtract}[$Index]} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
483
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
484 if ($TextFilesInfo{FileOkay}[$Index]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
485 if ($OptionsInfo{Mode} =~ /^categories$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
486 my($CategoryColNum, $CategoryColValid);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
487
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
488 $CategoryColNum = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
489 $CategoryColValid = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
490 if ($SpecifiedCategoryCol) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
491 if ($OptionsInfo{ColMode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
492 if ($SpecifiedCategoryCol <= $TextFilesInfo{ColCount}[$Index]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
493 $CategoryColNum = $SpecifiedCategoryCol - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
494 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
495 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
496 $CategoryColValid = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
497 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
498 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
499 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
500 if (exists($TextFilesInfo{ColLabelToNumMap}[$Index]{$SpecifiedCategoryCol})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
501 $CategoryColNum = $TextFilesInfo{ColLabelToNumMap}[$Index]{$SpecifiedCategoryCol};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
502 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
503 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
504 $CategoryColValid = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
505 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
506 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
507 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
508 if ($CategoryColValid) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
509 $TextFilesInfo{CategoryColNum}[$Index] = $CategoryColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
510 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
511 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
512 warn "Warning: Ignoring file $TextFile: Category column specified, $SpecifiedCategoryCol, using \"--categorycol\" option doesn't exist\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
513 $TextFilesInfo{FileOkay}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
514 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
515 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
516 elsif ($OptionsInfo{Mode} =~ /^columns$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
517 my($SpecifiedColNum, $ColNum);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
518
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
519 $ColNum = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
520 @ColNumsToExtract = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
521
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
522 if (@{$OptionsInfo{SpecifiedColumns}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
523 if ($OptionsInfo{ColMode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
524 for $SpecifiedColNum (@{$OptionsInfo{SpecifiedColumns}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
525 if ($SpecifiedColNum >=1 && $SpecifiedColNum <= $TextFilesInfo{ColCount}[$Index]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
526 $ColNum = $SpecifiedColNum - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
527 push @ColNumsToExtract, $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
528 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
529 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
530 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
531 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
532 my($ColLabel);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
533 for $ColLabel (@{$OptionsInfo{SpecifiedColumns}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
534 if (exists($TextFilesInfo{ColLabelToNumMap}[$Index]{$ColLabel})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
535 push @ColNumsToExtract, $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColLabel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
536 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
537 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
538 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
539 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
540 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
541 push @ColNumsToExtract, $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
542 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
543 if (@ColNumsToExtract) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
544 push @{$TextFilesInfo{ColNumsToExtract}[$Index]}, @ColNumsToExtract;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
545 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
546 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
547 warn "Warning: Ignoring file $TextFile: None of the columns specified, @{$OptionsInfo{SpecifiedColumns}}, using \"--columns\" option exist\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
548 $TextFilesInfo{FileOkay}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
549 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
550 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
551 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
552 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
553 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
554
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
555 # Process specified rows info...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
556 sub ProcessRowsInfo {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
557 my($Index, $TextFile, $ColID, $ColIDOkay, $Value, $Criterion, $ColNum, @RowValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
558
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
559 @{$TextFilesInfo{RowValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
560
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
561 FILELIST: for $Index (0 .. $#TextFilesList) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
562 $TextFile = $TextFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
563 @{$TextFilesInfo{RowValues}[$Index]} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
564
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
565 if ($OptionsInfo{Mode} !~ /^rows$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
566 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
567 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
568 if (!$TextFilesInfo{FileOkay}[$Index]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
569 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
570 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
571
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
572 @RowValues = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
573
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
574 if ($OptionsInfo{RowsMode} =~ /^rowsbycolvalue$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
575 my($ValueIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
576 for ($ValueIndex = 0; $ValueIndex < @{$OptionsInfo{SpecifiedRowValues}}; $ValueIndex = $ValueIndex + 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
577 $ColID = $OptionsInfo{SpecifiedRowValues}[$ValueIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
578 $Value = $OptionsInfo{SpecifiedRowValues}[$ValueIndex + 1];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
579 $Criterion = $OptionsInfo{SpecifiedRowValues}[$ValueIndex + 2];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
580
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
581 $ColIDOkay = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
582 if ($OptionsInfo{ColMode} =~ /^collabel$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
583 if (exists $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColID}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
584 $ColIDOkay = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
585 $ColNum = $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColID};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
586 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
587 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
588 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
589 if ($ColID >=1 && $ColID <= $TextFilesInfo{ColCount}[$Index]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
590 $ColNum = $ColID - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
591 $ColIDOkay = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
592 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
593 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
594 if ($ColIDOkay) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
595 push @RowValues, ($ColNum, $Value, $Criterion);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
596 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
597 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
598 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
599 elsif ($OptionsInfo{RowsMode} =~ /^(rowsbycolvaluelist|rowsbycolvaluerange|rowbymincolvalue|rowbymaxcolvalue)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
600 # Process coulumn id...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
601 $ColID = $OptionsInfo{SpecifiedRowValues}[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
602 $ColIDOkay = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
603
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
604 if ($OptionsInfo{ColMode} =~ /^collabel$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
605 if (exists $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColID}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
606 $ColIDOkay = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
607 $ColNum = $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColID};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
608 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
609 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
610 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
611 if ($ColID >=1 && $ColID <= $TextFilesInfo{ColCount}[$Index]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
612 $ColIDOkay = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
613 $ColNum = $ColID - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
614 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
615 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
616 if ($ColIDOkay) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
617 push @RowValues, $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
618 # Get rest of the specified values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
619 if (@{$OptionsInfo{SpecifiedRowValues}} > 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
620 for $Index (1 .. $#{$OptionsInfo{SpecifiedRowValues}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
621 push @RowValues, $OptionsInfo{SpecifiedRowValues}[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
622 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
623 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
624 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
625 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
626 elsif ($OptionsInfo{RowsMode} =~ /^(rownums|rownumrange)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
627 push @RowValues, @{$OptionsInfo{SpecifiedRowValues}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
628 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
629
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
630 if (@RowValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
631 push @{$TextFilesInfo{RowValues}[$Index]}, @RowValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
632 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
633 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
634 warn "Warning: Ignoring file $TextFile: Column specified, $ColID, using \"--rows\" option doesn't exist\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
635 $TextFilesInfo{FileOkay}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
636 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
637 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
638 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
639
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
640 # Retrieve information about input text files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
641 sub RetrieveTextFilesInfo {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
642 my($Index, $TextFile, $FileDir, $FileName, $FileExt, $InDelim, $Line, @ColLabels, $OutFileRoot, $CategoryOutFileRoot, $OutFile, $ColNum, $ColLabel);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
643
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
644 %TextFilesInfo = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
645
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
646 @{$TextFilesInfo{FileOkay}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
647 @{$TextFilesInfo{ColCount}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
648 @{$TextFilesInfo{ColLabels}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
649 @{$TextFilesInfo{ColLabelToNumMap}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
650 @{$TextFilesInfo{InDelim}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
651 @{$TextFilesInfo{OutFile}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
652 @{$TextFilesInfo{OutFileExt}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
653 @{$TextFilesInfo{CategoryOutFileRoot}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
654
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
655 FILELIST: for $Index (0 .. $#TextFilesList) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
656 $TextFile = $TextFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
657
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
658 $TextFilesInfo{FileOkay}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
659 $TextFilesInfo{ColCount}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
660 $TextFilesInfo{InDelim}[$Index] = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
661 $TextFilesInfo{OutFile}[$Index] = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
662 $TextFilesInfo{OutFileExt}[$Index] = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
663 $TextFilesInfo{CategoryOutFileRoot}[$Index] = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
664
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
665 @{$TextFilesInfo{ColLabels}[$Index]} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
666 %{$TextFilesInfo{ColLabelToNumMap}[$Index]} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
667
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
668 if (!(-e $TextFile)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
669 warn "Warning: Ignoring file $TextFile: It doesn't exist\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
670 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
671 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
672 if (!CheckFileType($TextFile, "csv tsv")) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
673 warn "Warning: Ignoring file $TextFile: It's not a csv or tsv file\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
674 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
675 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
676
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
677 ($FileDir, $FileName, $FileExt) = ParseFileName($TextFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
678 if ($FileExt =~ /^tsv$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
679 $InDelim = "\t";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
680 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
681 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
682 $InDelim = "\,";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
683 if (!($OptionsInfo{InDelim} =~ /^(comma|semicolon)$/i)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
684 warn "Warning: Ignoring file $TextFile: The value specified, $OptionsInfo{InDelim}, for option \"--indelim\" is not valid for csv files\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
685 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
686 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
687 if ($OptionsInfo{InDelim} =~ /^semicolon$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
688 $InDelim = "\;";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
689 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
690 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
691
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
692 if (!open TEXTFILE, "$TextFile") {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
693 warn "Warning: Ignoring file $TextFile: Couldn't open it: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
694 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
695 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
696
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
697 $Line = GetTextLine(\*TEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
698 @ColLabels = quotewords($InDelim, 0, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
699 close TEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
700
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
701 $FileDir = ""; $FileName = ""; $FileExt = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
702 ($FileDir, $FileName, $FileExt) = ParseFileName($TextFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
703 $FileExt = "csv";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
704 if ($OptionsInfo{OutDelim} =~ /^tab$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
705 $FileExt = "tsv";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
706 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
707
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
708 if ($OptionsInfo{OutFileRoot} && (@TextFilesList == 1)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
709 my ($RootFileDir, $RootFileName, $RootFileExt) = ParseFileName($OptionsInfo{OutFileRoot});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
710 if ($RootFileName && $RootFileExt) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
711 $FileName = $RootFileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
712 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
713 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
714 $FileName = $OptionsInfo{OutFileRoot};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
715 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
716 $OutFileRoot .= $FileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
717 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
718 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
719 $OutFileRoot = $FileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
720 $OutFileRoot .= ($OptionsInfo{Mode} =~ /^categories$/i) ? "CategoriesSummary" : (($OptionsInfo{Mode} =~ /^rows$/i) ? "ExtractedRows" : "ExtractedColumns");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
721 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
722 $CategoryOutFileRoot = "$FileName" . "Category";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
723
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
724 $OutFile = $OutFileRoot . ".$FileExt";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
725 if (lc($OutFile) eq lc($TextFile)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
726 warn "Warning: Ignoring file $TextFile:Output file name, $OutFile, is same as input text file name, $TextFile\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
727 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
728 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
729
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
730 if (!$OptionsInfo{Overwrite}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
731 if (-e $OutFile) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
732 warn "Warning: Ignoring file $TextFile: The file $OutFile already exists\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
733 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
734 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
735 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
736
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
737 $TextFilesInfo{FileOkay}[$Index] = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
738 $TextFilesInfo{InDelim}[$Index] = $InDelim;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
739 $TextFilesInfo{CategoryOutFileRoot}[$Index] = $CategoryOutFileRoot;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
740 $TextFilesInfo{OutFile}[$Index] = "$OutFile";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
741 $TextFilesInfo{OutFileExt}[$Index] = "$FileExt";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
742
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
743 $TextFilesInfo{ColCount}[$Index] = @ColLabels;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
744 push @{$TextFilesInfo{ColLabels}[$Index]}, @ColLabels;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
745
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
746 for $ColNum (0 .. $#ColLabels) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
747 $ColLabel = $ColLabels[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
748 $TextFilesInfo{ColLabelToNumMap}[$Index]{$ColLabel} = $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
749 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
750 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
751 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
752
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
753 # Process option values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
754 sub ProcessOptions {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
755 my(@SpecifiedColumns, @SpecifiedRowValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
756
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
757 %OptionsInfo = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
758
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
759 $OptionsInfo{Mode} = $Options{mode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
760
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
761 $OptionsInfo{ColMode} = $Options{colmode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
762
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
763 $OptionsInfo{CategoryCol} = defined $Options{categorycol} ? $Options{categorycol} : undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
764 $OptionsInfo{SpecifiedCategoryCol} = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
765
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
766 if (defined $Options{categorycol}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
767 my(@SpecifiedValues) = split ",", $Options{categorycol};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
768 if (@SpecifiedValues != 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
769 die "Error: Invalid number of values, ",scalar(@SpecifiedValues), " using \"--categorycol\" option: Only one value is allowed.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
770 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
771 $OptionsInfo{SpecifiedCategoryCol} = $SpecifiedValues[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
772 if ($Options{colmode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
773 if (!IsPositiveInteger($OptionsInfo{SpecifiedCategoryCol})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
774 die "Error: Category column value, $OptionsInfo{SpecifiedCategoryCol}, specified using \"--categorycol\" is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
775 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
776 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
777 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
778
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
779 $OptionsInfo{Columns} = defined $Options{columns} ? $Options{columns} : undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
780 @{$OptionsInfo{SpecifiedColumns}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
781 @SpecifiedColumns = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
782
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
783 if (defined $Options{columns}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
784 my(@SpecifiedValues) = split ",", $Options{columns};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
785 if ($Options{colmode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
786 my($ColValue);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
787 for $ColValue (@SpecifiedValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
788 if (!IsPositiveInteger($ColValue)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
789 die "Error: Column value, $ColValue, specified using \"--columns\" is not valid: Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
790 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
791 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
792 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
793 push @SpecifiedColumns, @SpecifiedValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
794 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
795 @{$OptionsInfo{SpecifiedColumns}} = @SpecifiedColumns;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
796
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
797 $OptionsInfo{InDelim} = $Options{indelim};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
798
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
799 $OptionsInfo{OutDelim} = ($Options{outdelim} =~ /^tab$/i ) ? "\t" : (($Options{outdelim} =~ /^semicolon$/i) ? "\;" : "\,");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
800 $OptionsInfo{OutQuote} = ($Options{quote} =~ /^yes$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
801 $OptionsInfo{Overwrite} = defined $Options{overwrite} ? $Options{overwrite} : undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
802
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
803 $OptionsInfo{OutFileRoot} = defined $Options{root} ? $Options{root} : undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
804
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
805 # Process any specified rows values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
806 @SpecifiedRowValues = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
807 @{$OptionsInfo{SpecifiedRowValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
808
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
809 $OptionsInfo{RowsMode} = $Options{rowsmode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
810 $OptionsInfo{Rows} = defined $Options{rows} ? $Options{rows} : undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
811
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
812 $OptionsInfo{SpecifiedRowsMode} = $Options{rowsmode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
813
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
814 if (defined $Options{rows}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
815 (@SpecifiedRowValues) = split ",", $Options{rows};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
816 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
817 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
818 if ($Options{rowsmode} !~ /^rownums$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
819 die "Error: Specify value for \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
820 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
821 push @SpecifiedRowValues, "1";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
822 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
823 @{$OptionsInfo{SpecifiedRowValues}} = @SpecifiedRowValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
824
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
825 my($SpecifiedColID, $SpecifiedRowID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
826 # Make sure specified values are okay...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
827 if ($Options{rowsmode} =~ /^rowsbycolvalue$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
828 if (@SpecifiedRowValues % 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
829 die "Error: Invalid number of values, ", scalar(@SpecifiedRowValues) , ", specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nIt must contain triplets.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
830 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
831 # Triplet format: colid,value,criteria. Criterion: le,ge,eq
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
832 my($Index, $ColID, $Criterion, $Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
833 for ($Index = 0; $Index < @SpecifiedRowValues; $Index = $Index + 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
834 $ColID = $SpecifiedRowValues[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
835 $Value = $SpecifiedRowValues[$Index + 1];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
836 $Criterion = $SpecifiedRowValues[$Index + 2];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
837 if ($Options{colmode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
838 if (!IsPositiveInteger($ColID)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
839 die "Error: Invalid column id, $ColID, specified in triplet, \"$ColID,$Criterion,$Value\", using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
840 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
841 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
842 if ($Criterion !~ /^(eq|le|ge)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
843 die "Error: Invalid criterion value, $Criterion, specified in triplet, \"$ColID,$Criterion,$Value\", using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed values: le, ge, or eq.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
844 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
845 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
846 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
847 elsif ($Options{rowsmode} =~ /^rowsbycolvaluelist$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
848 ($SpecifiedColID) = $SpecifiedRowValues[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
849 if ($Options{colmode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
850 if (!IsPositiveInteger($SpecifiedColID)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
851 die "Error: Rows value, $SpecifiedColID, specified using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
852 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
853 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
854 if (@SpecifiedRowValues == 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
855 die "Error: Invalid number of values, ", scalar(@SpecifiedRowValues) , ", specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nIt must contain more than one value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
856 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
857 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
858 elsif ($Options{rowsmode} =~ /^rowsbycolvaluerange$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
859 if (@SpecifiedRowValues != 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
860 die "Error: Invalid number of values, ", scalar(@SpecifiedRowValues) , ", specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nIt must contain three values\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
861 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
862 ($SpecifiedColID) = $SpecifiedRowValues[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
863 if ($Options{colmode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
864 if (!IsPositiveInteger($SpecifiedColID)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
865 die "Error: Rows value, $SpecifiedColID, specified using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
866 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
867 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
868 if ($SpecifiedRowValues[1] >= $SpecifiedRowValues[2]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
869 die "Error: Invalid value triplet - ", JoinWords(\@SpecifiedRowValues, ',', 0) , " - specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nAllowed values: second value < third value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
870 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
871 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
872 elsif ($Options{rowsmode} =~ /^(rowbymincolvalue|rowbymaxcolvalue)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
873 if (@SpecifiedRowValues != 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
874 die "Error: Invalid number of values, ", scalar(@SpecifiedRowValues) , ", specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nOnly one value is allowed.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
875 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
876 ($SpecifiedColID) = $SpecifiedRowValues[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
877 if ($Options{colmode} =~ /^colnum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
878 if (!IsPositiveInteger($SpecifiedColID)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
879 die "Error: Rows value, $SpecifiedColID, specified using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
880 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
881 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
882 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
883 elsif ($Options{rowsmode} =~ /^rownums$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
884 for $SpecifiedRowID (@SpecifiedRowValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
885 if (!IsPositiveInteger($SpecifiedRowID)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
886 die "Error: Rows value, $SpecifiedRowID, specified using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
887 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
888 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
889 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
890 elsif ($Options{rowsmode} =~ /^rownumrange$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
891 if (@SpecifiedRowValues != 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
892 die "Error: Invalid number of values, ", scalar(@SpecifiedRowValues) , ", specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nIt must contain only two values.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
893 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
894 for $SpecifiedRowID (@SpecifiedRowValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
895 if (!IsPositiveInteger($SpecifiedRowID)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
896 die "Error: Rows value, $SpecifiedRowID, specified using \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode} is not valid. Allowed integer values: > 0.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
897 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
898 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
899 if ($SpecifiedRowValues[0] >= $SpecifiedRowValues[1]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
900 die "Error: Invalid value pair - ", JoinWords(\@SpecifiedRowValues, ',', 0) , " - specified by \"--rows\" option with \"--rowsmode\" value of $Options{rowsmode}.\nAllowed values: First value < second value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
901 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
902 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
903 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
904
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
905 # Setup script usage and retrieve command line arguments specified using various options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
906 sub SetupScriptUsage {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
907
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
908 # Setup default and retrieve all the options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
909 %Options = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
910 $Options{colmode} = "colnum";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
911 $Options{indelim} = "comma";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
912 $Options{mode} = "columns";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
913 $Options{outdelim} = "comma";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
914 $Options{quote} = "yes";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
915 $Options{rowsmode} = "rownums";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
916
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
917 if (!GetOptions(\%Options, "categorycol=s", "columns=s", "colmode|c=s", "help|h", "indelim=s", "mode|m=s", "outdelim=s", "overwrite|o", "quote|q=s", "root|r=s", "rows=s", "rowsmode=s", "workingdir|w=s")) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
918 die "\nTo get a list of valid options and their values, use \"$ScriptName -h\" or\n\"perl -S $ScriptName -h\" command and try again...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
919 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
920 if ($Options{workingdir}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
921 if (! -d $Options{workingdir}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
922 die "Error: The value specified, $Options{workingdir}, for option \"-w --workingdir\" is not a directory name.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
923 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
924 chdir $Options{workingdir} || die "Error: Couldn't chdir $Options{workingdir}: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
925 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
926 if ($Options{mode} !~ /^(columns|rows|categories)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
927 die "Error: The value specified, $Options{mode}, for option \"-m --mode\" is not valid. Allowed values: columns, rows or categories \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
928 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
929 if ($Options{colmode} !~ /^(colnum|collabel)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
930 die "Error: The value specified, $Options{colmode}, for option \"--colmode\" is not valid. Allowed values: colnum or collabel \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
931 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
932 if ($Options{indelim} !~ /^(comma|semicolon)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
933 die "Error: The value specified, $Options{indelim}, for option \"--indelim\" is not valid. Allowed values: comma or semicolon\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
934 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
935 if ($Options{outdelim} !~ /^(comma|semicolon|tab)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
936 die "Error: The value specified, $Options{outdelim}, for option \"--outdelim\" is not valid. Allowed values: comma, tab, or semicolon\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
937 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
938 if ($Options{quote} !~ /^(yes|no)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
939 die "Error: The value specified, $Options{quote}, for option \"-q --quote\" is not valid. Allowed values: yes or no\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
940 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
941 if ($Options{rowsmode} !~ /^(rowsbycolvalue|rowsbycolvaluelist|rowsbycolvaluerange|rowbymincolvalue|rowbymaxcolvalue|rownums|rownumrange)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
942 die "Error: The value specified, $Options{rowsmode}, for option \"--rowsmode\" is not valid. Allowed values: rowsbycolvalue, rowsbycolvaluelist, rowsbycolvaluerange, rowbymincolvalue, rowbymaxcolvalue, rownum, rownumrange\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
943 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
944 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
945 __END__
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
946
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
947
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
948 =head1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
949
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
950 ExtractFromTextFiles.pl - Extract specific data from TextFile(s)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
951
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
952 =head1 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
953
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
954 ExtractFromTextFiles.pl TextFile(s)...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
955
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
956 ExtractFromTextFiles.pl [B<-c, --colmode> colnum | collabel] [B<--categorycol > number | string]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
957 [B<--columns> "colnum,[colnum]..." | "collabel,[collabel]..."] [B<-h, --help>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
958 [B<--indelim> I<comma | semicolon>] [B<-m, --mode > I<columns | rows | categories>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
959 [B<-o, --overwrite>] [B<--outdelim> I<comma | tab | semicolon>] [B<-q, --quote> I<yes | no>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
960 [B<--rows> "colid,value,criteria..." | "colid,value..." | "colid,mincolvalue,maxcolvalue" | "rownum,rownum,..." | colid | "minrownum,maxrownum"]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
961 [ B<--rowsmode> rowsbycolvalue | rowsbycolvaluelist | rowsbycolvaluerange | rowbymincolvalue | rowbymaxcolvalue | rownums | rownumrange]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
962 [B<-r, --root> I<rootname>] [B<-w, --workingdir> I<dirname>] TextFile(s)...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
963
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
964 =head1 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
965
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
966 Extract column(s)/row(s) data from I<TextFile(s)> identified by column numbers or labels. Or categorize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
967 data using a specified column category. During categorization, a summary text file is
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
968 generated containing category name and count; an additional text file, containing data for
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
969 for each category, is also generated. The file names are separated by space. The
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
970 valid file extensions are I<.csv> and I<.tsv> for comma/semicolon and tab delimited
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
971 text files respectively. All other file names are ignored. All the text files in a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
972 current directory can be specified by I<*.csv>, I<*.tsv>, or the current directory
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
973 name. The B<--indelim> option determines the format of I<TextFile(s)>. Any file
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
974 which doesn't correspond to the format indicated by B<--indelim> option is ignored.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
975
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
976 =head1 OPTIONS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
977
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
978 =over 4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
979
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
980 =item B<-c, --colmode> I<colnum | collabel>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
981
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
982 Specify how columns are identified in I<TextFile(s)>: using column number or column
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
983 label. Possible values: I<colnum or collabel>. Default value: I<colnum>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
984
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
985 =item B<--categorycol > I<number | string>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
986
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
987 Column used to categorize data. Default value: First column.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
988
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
989 For I<colnum> value of B<-c, --colmode> option, input value is a column number.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
990 Example: I<1>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
991
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
992 For I<collabel> value of B<-c, --colmode> option, input value is a column label.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
993 Example: I<Mol_ID>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
994
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
995 =item B<--columns> I<"colnum,[colnum]..." | "collabel,[collabel]...">
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
996
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
997 List of comma delimited columns to extract. Default value: First column.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
998
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
999 For I<colnum> value of B<-c, --colmode> option, input values format is:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1000 I<colnum,colnum,...>. Example: I<1,3,5>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1001
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1002 For I<collabel> value of B<-c, --colmode> option, input values format is:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1003 I<collabel,collabel,..>. Example: I<Mol_ID,MolWeight>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1004
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1005 =item B<-h, --help>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1006
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1007 Print this help message.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1008
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1009 =item B<--indelim> I<comma | semicolon>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1011 Input delimiter for CSV I<TextFile(s)>. Possible values: I<comma or semicolon>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1012 Default value: I<comma>. For TSV files, this option is ignored and I<tab> is used as a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1013 delimiter.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1014
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1015 =item B<-m, --mode > I<columns | rows | categories>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1016
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1017 Specify what to extract from I<TextFile(s)>. Possible values: I<columns, rows,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1018 or categories>. Default value: I<columns>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1019
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1020 For I<columns> mode, data for appropriate columns specified by B<--columns> option
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1021 is extracted from I<TextFile(s)> and placed into new text files.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1022
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1023 For I<rows> mode, appropriate rows specified in conjuction with B<--rowsmode> and
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1024 B<rows> options are extracted from I<TextFile(s)> and placed into new text files.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1025
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1026 For I<categories> mode, coulmn specified by B<--categorycol> is
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1027 used to categorize data, and a summary text file is generated
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1028 containing category name and count; an additional text file, containing data for
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1029 for each category, is also generated.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1030
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1031 =item B<-o, --overwrite>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1032
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1033 Overwrite existing files.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1034
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1035 =item B<--outdelim> I<comma | tab | semicolon>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1036
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1037 Output text file delimiter. Possible values: I<comma, tab, or semicolon>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1038 Default value: I<comma>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1039
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1040 =item B<-q, --quote> I<yes | no>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1041
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1042 Put quotes around column values in output text file. Possible values: I<yes or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1043 no>. Default value: I<yes>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1044
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1045 =item B<-r, --root> I<rootname>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1046
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1047 New file name is generated using the root: <Root>.<Ext>. Default for new file
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1048 names: <TextFile>CategoriesSummary.<Ext>, <TextFile>ExtractedColumns.<Ext>, and
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1049 <TextFile>ExtractedRows.<Ext> for I<categories>, I<columns>, and I<rows> mode
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1050 respectively. And <TextFile>Category<CategoryName>.<Ext>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1051 for each category retrieved from each text file. The output file type determines <Ext>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1052 value: csv and tsv for CSV, and TSV files respectively.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1053
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1054 This option is ignored for multiple input files.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1055
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1056 =item B<--rows> I<"colid,value,criteria..." | "colid,value..." | "colid,mincolvalue,maxcolvalue" | "rownum,rownum,..." | colid | "minrownum,maxrownum">
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1057
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1058 This value is B<--rowsmode> specific. In general, it's a list of comma separated column ids and
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1059 associated mode specific value. Based on Column ids specification, column label or number, is
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1060 controlled by B<-c, --colmode> option.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1061
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1062 First line containing column labels is always written out. And value comparisons assume
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1063 numerical column data.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1064
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1065 For I<rowsbycolvalue> mode, input value format contains these triplets:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1066 I<colid,value, criteria...>. Possible values for criteria: I<le, ge or eq>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1067 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1068
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1069 MolWt,450,le
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1070 MolWt,450,le,LogP,5,le,SumNumNO,10,le,SumNHOH,5,le
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1071
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1072 For I<rowsbycolvaluelist> mode, input value format is: I<colid,value...>. Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1073
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1074 Mol_ID,20
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1075 Mol_ID,20,1002,1115
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1076
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1077 For I<rowsbycolvaluerange> mode, input value format is: I<colid,mincolvalue,maxcolvalue>. Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1078
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1079 MolWt,100,450
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1080
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1081 For I<rowbymincolvalue, rowbymaxcolvalue> modes, input value format is: I<colid>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1082
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1083 For I<rownum> mode, input value format is: I<rownum>. Default value: I<2>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1084
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1085 For I<rownumrange> mode, input value format is: I<minrownum, maxrownum>. Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1086
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1087 10,40
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1088
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1089 =item B<--rowsmode> I<rowsbycolvalue | rowsbycolvaluelist | rowsbycolvaluerange | rowbymincolvalue | rowbymaxcolvalue | rownums | rownumrange>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1090
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1091 Specify how to extract rows from I<TextFile(s)>. Possible values: I<rowsbycolvalue, rowsbycolvaluelist, rowsbycolvaluerange,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1092 rowbymincolvalue, rowbymaxcolvalue, rownum, rownumrange>. Default value: I<rownum>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1093
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1094 Use B<--rows> option to list rows criterion used for extraction of rows from
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1095 I<TextFile(s)>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1096
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1097 =item B<-w, --workingdir> I<dirname>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1098
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1099 Location of working directory. Default: current directory.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1101 =back
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1102
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1103 =head1 EXAMPLES
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1104
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1105 To extract first column from a text file and generate a new CSV text file NewSample1.csv,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1106 type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1108 % ExtractFromTextFiles.pl -r NewSample1 -o Sample1.csv
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1109
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1110 To extract columns Mol_ID, MolWeight, and NAME from Sample1.csv and generate a new
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1111 textfile NewSample1.tsv with no quotes, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1112
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1113 % ExtractFromTextFiles.pl -m columns -c collabel --columns "Mol_ID,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1114 MolWeight,NAME" --outdelim tab --quote no -r NewSample1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1115 -o Sample1.csv
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1116
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1117 To extract rows containing values for MolWeight column of less than 450 from
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1118 Sample1.csv and generate a new textfile NewSample1.csv, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1119
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1120 % ExtractFromTextFiles.pl -m rows --rowsmode rowsbycolvalue
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1121 -c collabel --rows MolWeight,450,le -r NewSample1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1122 -o Sample1.csv
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1123
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1124 To extract rows containing values for MolWeight column between 400 and 500 from
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1125 Sample1.csv and generate a new textfile NewSample1.csv, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1127 % ExtractFromTextFiles.pl -m rows --rowsmode rowsbycolvaluerange
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1128 -c collabel --rows MolWeight,450,500 -r NewSample1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1129 -o Sample1.csv
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1130
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1131 To extract a row containing minimum value for column MolWeight from Sample1.csv and generate
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1132 a new textfile NewSample1.csv, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1133
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1134 % ExtractFromTextFiles.pl -m rows --rowsmode rowbymincolvalue
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1135 -c collabel --rows MolWeight -r NewSample1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1136 -o Sample1.csv
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1137
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1138 =head1 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1139
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1140 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1141
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1142 =head1 SEE ALSO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1143
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1144 JoinTextFiles.pl, MergeTextFilesWithSD.pl, ModifyTextFilesFormat.pl, SplitTextFiles.pl
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1145
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1146 =head1 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1147
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1148 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1149
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1150 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1151
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1152 MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1153 the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1154 Software Foundation; either version 3 of the License, or (at your option)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1155 any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1156
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1157 =cut