Perl Script to produce a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl Script to produce a file
# 1  
Old 05-16-2009
Perl Script to produce a file

hi
i got a file called essay which contain few pages with many paragraphs. now i wanna with PERL to produce another file which called Essaylist that contain a sorted list of words that appear in the file essay.

the format for Essaylist:
$word found $times times on page a b c....
where $word is the word appear in the file, $times is the times that the word appear in the file and a b c is the page number that the word appeared.

i did something like that

Code:
file = essay

# Nothing has been seen
%seen = ();

# read words from input
while (<$file>)
{
	while ( /(\w['\w-]*)/g)
	{
		# Increment the counter
		$seen{lc $1}++;
	}
}

# output hash in a 
foreach $word (sort {  } keys %seen)
{
	print "$word found $seen{$word} times on pages $page\n";
}

the code above is not working, so can anyone please help me?
# 2  
Old 05-16-2009
What is the error it is saying for you ?

If it is this error,
syntax error at file.pl line 19, near "} keys"

remove off {} in sort function call.
# 3  
Old 05-16-2009
is this a pseudo perl code ???
Code:
file = essay ## it should be $file

# Nothing has been seen
%seen = ();

# read words from input 

# where did you open the file ??

while (<$file>)
{
        ### Missing chomp 
	while ( /(\w['\w-]*)/g)
	{
		# Increment the counter
		$seen{lc $1}++;  
	}
}

# output hash in a 
foreach $word (sort {  } keys %seen)
{
	print "$word found $seen{$word} times on pages $page\n";
}

here is my try

Code:
#! /usr/bin/perl

my $file = $ARGV[0] ;
my @LineArray = () ;
my %WordHash = () ;

open(ESSAY,"$file") or die "can not open file for reading : $!\n" ;
while(<ESSAY>)
{
   chomp ;
   @LineArray = split (/ \s*/,$_ ) ;
   foreach my $word ( @LineArray )
   {
      $word = lc $word ;
      $WordHash{$word}++ ;
   }
}

foreach my $word ( sort keys %WordHash )
{
   print "$word\t$WordHash{$word}\n" ;
}

# 4  
Old 05-16-2009
School work is supposed to not be posted on the forum.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help fix my script to get alerts when the command produce n expected output

Hi, Below is my script, which is used to invoke a test using curl command. #/usr/bin/sh MAILTO=user@xyz.com URL='https://myserver.xyz.net/test/dir/test123.tws' SOAPFILE=/tmp/soap.txt curl -k -s -S --header 'Content-Type: text/xml;charset=UTF-8' --data @"${SOAPFILE}" "${URL}" ... (3 Replies)
Discussion started by: System Admin 77
3 Replies

2. Shell Programming and Scripting

How to produce a executable Oracle script from bash script?

Hi here's my code ${ORACLE_HOME}/bin/sqlplus /nolog <<!EOF --step 5 create db script start set feedback off set heading off set echo off conn / as sysdba spool ${ORACLE_SID}_db_link.sql SELECT 'CREATE '||DECODE(U.NAME,'PUBLIC','public ')||'DATABASE LINK '||CHR(10)... (2 Replies)
Discussion started by: jediwannabe
2 Replies

3. Shell Programming and Scripting

Help in modifying existing Perl Script to produce report of dupes

Hello, I have a large amount of data with the following structure: Word=Transliterated word I have written a Perl Script (reproduced below) which goes through the full file and identifies all dupes on the right hand side. It creates successfully a new file with two headers: Singletons and Dupes.... (5 Replies)
Discussion started by: gimley
5 Replies

4. Shell Programming and Scripting

Script to produce report of High Utilization Processes

Hi, I have requirement to produce a report on high CPU utilization processes and the processes lying on the CPU for long time (Long running queries). The report should append into the files every 3 minutes. I use prstat to pull top 5 and found the following result. ... (3 Replies)
Discussion started by: thinakarmani
3 Replies

5. Shell Programming and Scripting

Perl :How to print the o/p of a Perl script on console and redirecting same in log file @ same time.

How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ? Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies

6. Shell Programming and Scripting

get file content and produce command

hi buddies; ip.txt: 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 ... parameters.txt: portvalue username password session ... (2 Replies)
Discussion started by: gc_sw
2 Replies

7. Shell Programming and Scripting

Shell script that will compare two config files and produce 2 outputs 1)actual config file 2)report

Hi I am new to shell scripting. There is a requirement to write a shell script to meet follwing needs.Prompt reply shall be highly appreciated. script that will compare two config files and produce 2 outputs - actual config file and a report indicating changes made. OS :Susi linux ver 10.3. ... (4 Replies)
Discussion started by: muraliinfy04
4 Replies

8. Shell Programming and Scripting

Caller Script should produce and email from 4 different script within it

Hi I wrote a shell script , which includes one output file which is emailed back to me , when the script runs . Now i want to slip the script into 4 different shell scripts each of which taking the parameter PROD or DEV, and include all the 4 different shell scripts in a caller script. ... (3 Replies)
Discussion started by: rxg
3 Replies

9. Shell Programming and Scripting

How to produce a file by many files?

i got these files: files: Prac1, Prac2, Prac3 (these 3 files have the same format), the format : Prac1 20693680 10 20179687 9 20781637 5 21907894 6 Prac2 20693680 8 20179687 6 21907894 2 Prac3 20693680 8 21907894 9 file STUDENTS, the format: 20693680:familyname, firstname (10 Replies)
Discussion started by: mingming88
10 Replies

10. Shell Programming and Scripting

Adding things in a file and produce a new one

I wanna add a ":" at the end of each line, and i did something like this: cat Totals | while read ID TOTAL do echo "${ID}:${TOTAL}:" >>Totals2 done File: Totals 12345678:13 21443433:20 The outputs file Totals2 is: 12345678:13:: 21443433:20:: but i want 12345678:13:... (3 Replies)
Discussion started by: mingming88
3 Replies
Login or Register to Ask a Question