Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Reading a file and Classification Post 302294299 by Yogesh Sawant on Thursday 5th of March 2009 01:48:23 AM
Old 03-05-2009
check if this perl script helps:
Code:
#!/usr/bin/perl
# classify_books.pl
my $csv_file   = shift;
my %categories = ( 'childrens' => 'childrens_books.txt',
                   'horror'    => 'horror_books.txt',
                   'sports   ' => 'sports_books.txt',
                   'computing' => 'computing_books.txt');

my @childrens_file, @horror_file, @sports_file, @computing_file;

open(CSV_FILE, '<', $csv_file)  or  die "Failed to read file $csv_file : $! \n";
while (my $line = <CSV_FILE>) {
    next unless ($line =~ m/^\d{3}-\d+,/);
    my ($isbn, $title, $author, $category) = split(/,/, $line);
    $title    =~ s/^\s+//;
    $author   =~ s/^\s+//;
    $category = lc($category);
    $category =~ s/^\s+//;

    unless (exists($categories{$category})) {
        print STDERR "\nUndefined category $category for book $title by $author having ISBN $isbn \n";
        next;
    }

    if ($category =~ m/childrens/) {
        push(@childrens_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
    }
    elsif ($category =~ m/horror/) {
        push(@horror_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
    }
    elsif ($category =~ m/sports/) {
        push(@sports_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
    }
    elsif ($category =~ m/computing/) {
        push(@computing_file, "ISBN: $isbn\nAuthor: $author\nTitle: $title\n\n");
    }
}
close(CSV_FILE);

if (@childrens_file) {
    open (CHL_FILE, '>', $categories{'childrens'})  or  die "Failed to write file $categories{'childrens'} : $! \n";
    print CHL_FILE @childrens_file;
    close (CHL_FILE);
}

if (@horror_file) {
    open (CHL_FILE, '>', $categories{'horror'})  or  die "Failed to write file $categories{'horror'} : $! \n";
    print CHL_FILE @horror_file;
    close (CHL_FILE);
}

if (@sports_file) {
    open (CHL_FILE, '>', $categories{'sports'})  or  die "Failed to write file $categories{'sports'} : $! \n";
    print CHL_FILE @sports_file;
    close (CHL_FILE);
}

if (@computing_file) {
    open (CHL_FILE, '>', $categories{'computing'})  or  die "Failed to write file $categories{'computing'} : $! \n";
    print CHL_FILE @computing_file;
    close (CHL_FILE);
}

__END__


Last edited by Yogesh Sawant; 03-05-2009 at 03:52 AM..
 

3 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Creating a Classification Banner

Hello; I need to place a classification banner at the top of my Solaris 2.6 CDE Desktop. The Banner must be displayed in all CDE desktop sessions available on the CDE dashboard (1,2,3,4). The Banner must remain anchored at the top of the CDE desktop and must not be able to be closed... (1 Reply)
Discussion started by: rambo15
1 Replies

2. UNIX Desktop Questions & Answers

CDE Classification Banner

Hello; I need to place a classification banner at the top of my Solaris 2.6 CDE Desktop. The Banner must be displayed in all CDE desktop sessions available on the CDE dashboard (1,2,3,4). The Banner must remain anchored at the top of the CDE desktop and must not be able to be closed or hidden... (0 Replies)
Discussion started by: rambo15
0 Replies

3. Shell Programming and Scripting

scripting for classification

hi i am very new to scripting. i am learning by myself. i found this example. can any one help in writing script for this example, so that i can have an idea how to analyse and script. example: overview: The aim of this exercise is to classify books into four seperate files and then print a... (1 Reply)
Discussion started by: yonex
1 Replies
Excel::Writer::XLSX::Chart::Stock(3pm)			User Contributed Perl Documentation		    Excel::Writer::XLSX::Chart::Stock(3pm)

NAME
Stock - A class for writing Excel Stock charts. SYNOPSIS
To create a simple Excel file with a Stock chart using Excel::Writer::XLSX: #!/usr/bin/perl -w use strict; use Excel::Writer::XLSX; my $workbook = Excel::Writer::XLSX->new( 'chart.xlsx' ); my $worksheet = $workbook->add_worksheet(); my $chart = $workbook->add_chart( type => 'stock' ); # Add a series for each High-Low-Close. $chart->add_series( categories => '=Sheet1!$A$2:$A$6', values => '=Sheet1!$B$2:$B$6' ); $chart->add_series( categories => '=Sheet1!$A$2:$A$6', values => '=Sheet1!$C$2:$C$6' ); $chart->add_series( categories => '=Sheet1!$A$2:$A$6', values => '=Sheet1!$D$2:$D$6' ); # Add the worksheet data the chart refers to. # ... See the full example below. __END__ DESCRIPTION
This module implements Stock charts for Excel::Writer::XLSX. The chart object is created via the Workbook "add_chart()" method: my $chart = $workbook->add_chart( type => 'stock' ); Once the object is created it can be configured via the following methods that are common to all chart classes: $chart->add_series(); $chart->set_x_axis(); $chart->set_y_axis(); $chart->set_title(); These methods are explained in detail in Excel::Writer::XLSX::Chart. Class specific methods or settings, if any, are explained below. Stock Chart Methods There aren't currently any stock chart specific methods. See the TODO section of Excel::Writer::XLSX::Chart. The default Stock chart is an High-Low-Close chart. A series must be added for each of these data sources. EXAMPLE
Here is a complete example that demonstrates most of the available features when creating a Stock chart. #!/usr/bin/perl use strict; use warnings; use Excel::Writer::XLSX; use Excel::Writer::XLSX; my $workbook = Excel::Writer::XLSX->new( 'chart_stock.xlsx' ); my $worksheet = $workbook->add_worksheet(); my $bold = $workbook->add_format( bold => 1 ); my $date_format = $workbook->add_format( num_format => 'dd/mm/yyyy' ); my $chart = $workbook->add_chart( type => 'stock', embedded => 1 ); # Add the worksheet data that the charts will refer to. my $headings = [ 'Date', 'High', 'Low', 'Close' ]; my $data = [ [ '2007-01-01T', '2007-01-02T', '2007-01-03T', '2007-01-04T', '2007-01-05T' ], [ 27.2, 25.03, 19.05, 20.34, 18.5 ], [ 23.49, 19.55, 15.12, 17.84, 16.34 ], [ 25.45, 23.05, 17.32, 20.45, 17.34 ], ]; $worksheet->write( 'A1', $headings, $bold ); for my $row ( 0 .. 4 ) { $worksheet->write_date_time( $row+1, 0, $data->[0]->[$row], $date_format ); $worksheet->write( $row+1, 1, $data->[1]->[$row] ); $worksheet->write( $row+1, 2, $data->[2]->[$row] ); $worksheet->write( $row+1, 3, $data->[3]->[$row] ); } $worksheet->set_column( 'A:D', 11 ); # Add a series for each of the High-Low-Close columns. $chart->add_series( categories => '=Sheet1!$A$2:$A$6', values => '=Sheet1!$B$2:$B$6', ); $chart->add_series( categories => '=Sheet1!$A$2:$A$6', values => '=Sheet1!$C$2:$C$6', ); $chart->add_series( categories => '=Sheet1!$A$2:$A$6', values => '=Sheet1!$D$2:$D$6', ); # Add a chart title and some axis labels. $chart->set_title ( name => 'High-Low-Close', ); $chart->set_x_axis( name => 'Date', ); $chart->set_y_axis( name => 'Share price', ); $worksheet->insert_chart( 'E9', $chart ); __END__ AUTHOR
John McNamara jmcnamara@cpan.org COPYRIGHT
Copyright MM-MMXII, John McNamara. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. perl v5.10.1 2012-04-02 Excel::Writer::XLSX::Chart::Stock(3pm)
All times are GMT -4. The time now is 10:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy