Assistance needed with perl script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Assistance needed with perl script
# 1  
Old 03-17-2009
Assistance needed with perl script

Ok, theres a log file containing the below. Lets call the logfile log_fantastic:

2009/03/16 21:42:45 USER: tonnabo - MAC: 0014BF2D385A - STATUS_ID: 30 - STATE: ERROR
2009/03/16 21:42:45 USER: tonnabo - MAC: 001310AC120D - STATUS_ID: 15 - STATE: OK
2009/03/16 21:42:45 USER: tonnabo - MAC: 001DD9277095 - STATUS_ID: 20 - STATE: ERROR


I want to write a perl script that will read the contents of log_fantastic and output only the lines that does not have a status_id of 10?

the below is what i've done. not sure if this is correct:


use Data:: Dumper;

main();


sub main {
my @results;
my $headers = "user,
mac address,
status_id";

my (@log_info, @dircontents);


open (LOG, "</home/jhenson/log_fantastic");
@log_info = <LOG>;
close (LOG);

print Dumper("testing");
foreach my $content (@log_info) {
chomp($content);
my $line = substr ($content, -2);
print Dumper($line);
if ($line eq "OK") {
push @dircontents, $content;
}
}


#push @alarm_info, uc $headers;

print Dumper(@dircontents);

}
# 2  
Old 03-17-2009
you need a perl script to do this? :

Code:
grep -v 'STATUS_ID: 10 ' ${file:-"/home/jhenson/log_fantastic"}

Or is there more to it...?
# 3  
Old 03-17-2009
Try the perl script : -
==================

#!/usr/bin/perl
open(FH,"log_fantastic") or dir ("Couldnt open file");
while(<FH>)
{
$rec=$_;
chomp ($rec);
@arr=split(/:/,$rec);
print $rec,"\n" if ($arr[5]!~/10/);
}
close(FH);
# 4  
Old 03-17-2009
Quote:
Originally Posted by curleb
you need a perl script to do this? :

Code:
grep -v 'STATUS_ID: 10 ' ${file:-"/home/jhenson/log_fantastic"}

Or is there more to it...?


oh theres more to it. i coulda easily done this through shell programming. but this needs to be done in perl. on top of grepping out the wanted status ids, i goto set it up in fields. thanks a million for your suggestion
# 5  
Old 03-17-2009
Quote:
Originally Posted by jambesh
Try the perl script : -
==================

#!/usr/bin/perl
open(FH,"log_fantastic") or dir ("Couldnt open file");
while(<FH>)
{
$rec=$_;
chomp ($rec);
@arr=split(/:/,$rec);
print $rec,"\n" if ($arr[5]!~/10/);
}
close(FH);


this works PERFECTLY. thanks a million.
# 6  
Old 03-17-2009
This should be more efficient and more accurate:

Code:
open(FH,"log_fantastic") or dir ("Couldnt open file: $!");
while(my $line = <FH>) {
   next if (/STATUS_ID: 10 /);
   print;
}
close(FH);

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assistance on complicated perl script

As a followup to my previous thread, I'm trying to make a complicated perl script that involves storing information from a text file into a hash, and giving the user the ability to change the information present/write the information currently inside the hash to a new file. This is the code I've... (8 Replies)
Discussion started by: Eric1
8 Replies

2. Shell Programming and Scripting

Assistance needed for pattern matching

Hi, Below are input files:- File1:- 1: ### CREATE TABLE ## 2: SOMETHING ELSE 1 3: ### CREATE TABLE ## 4: ### CREATE <spaces> 5: TABLE ### 6:SOMETHING ELSE 2 7: ## CREATE 8: <spaces> TABLE ### 9: SOMETHING ELSE 3 File2:- Similar Format... Desired 1 Output File:- (3 Replies)
Discussion started by: kishal
3 Replies

3. Shell Programming and Scripting

assistance needed to add 2 other routines to my script

Hello guys, In my script, I need to add two other routines where I Manipulate the files with a 'x' The routine looks at CLI named qip-getobjectprof that references a input file named hosts_list.txt Then I use the CLI named qip-setobject to set the orignal name with an 'x'and move the... (3 Replies)
Discussion started by: richsark
3 Replies

4. Shell Programming and Scripting

script assistance needed - create an archive of INI files

First and foremost - me != unix bubba. Here is the situation. We have a box with data AND settings in the same directory path. (Data files aren't in the SAME directories as settings.) I need a script that generates a tarred-up archive of only the INI files with the directory structure. We... (2 Replies)
Discussion started by: hindesite
2 Replies

5. UNIX for Advanced & Expert Users

Assistance Needed With Find/Replace in Vi

Hello All I have always had a question about find and replace in Vi. As this uses Vi, sed, and RegEx I never knew how or where to post the question but I thought I would give it a shot here. Say I have a text file filled with the following: Sue, your IP address is 192.168.1.10 which is... (4 Replies)
Discussion started by: NoSalt
4 Replies

6. UNIX for Dummies Questions & Answers

Yellow Book assistance needed

Has anyone worked with yellow book in a unix/linux environment? If so, could you provide me with more answers around this? (2 Replies)
Discussion started by: FL1
2 Replies

7. Shell Programming and Scripting

Perl script assistance; paste word into external command

I'm attempting to create a Perl script that will: Take the contents of the usernames.tmp file (usernames.tmp is created from an awk one-liner ran against /etc/passwd) Take one line at a time and pass it to the su command as a users name. This should go on until there is no more name to... (10 Replies)
Discussion started by: bru
10 Replies

8. UNIX for Dummies Questions & Answers

Assistance needed.

the command "nawk" returns the error command cannot be found in my unix system. Is there a specific library i need to have to use this command? I tried, the whereis command and it returns nothing. if there is nothing to do, what command can i use to replace this nawk command? Appreciate some... (4 Replies)
Discussion started by: 12yearold
4 Replies

9. UNIX for Dummies Questions & Answers

NFS mount assistance needed...

Hello all - I've searched this forum, but was unable to find out the info I need. I'm trying to mount (nfs mount) a directory on another box from my Linux machine. The mount point resides on a Tru64 digital unix machine. The machine trying to do the mount is a Linux machine (redhat 8.0). ... (2 Replies)
Discussion started by: Heron
2 Replies
Login or Register to Ask a Question