Perl - help needed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl - help needed
# 1  
Old 06-25-2008
Perl - help needed

Hi all,

I'm a rookie in Perl scripting, and I have a task to do.

Generally it's something like that:

I have a reference file consisting of a number and name, tab-separated. One entry in one line, about 99 lines in file.
The other file is an XML log file, where in one specific branch, eg. <id> there's a number.
All I have to do, is to (I guess) get the first file into hash array and compare it to the XML. If script finds the number, it displays it's name from array.

But.. How to do it? Can anyone help me, please?
A piece of code, clues or something?

Thanks in advance,
rgds!
# 2  
Old 06-25-2008
If you post a sample of your input and an example of the desired output it will be much easier.
# 3  
Old 06-25-2008
Sample input and output?

Well there are two files:
first:
Code:
001 name001
002 name002
003 name003

The second file, XML:
Code:
<main>
<some_data>
<id>001</id>
</some_data>
</main>

and the script, when finds xml's <id> field should write proper value, like "name001" for id=001. When <id> is not listed in first reference file, some error msg should occur. The output should be on-screen only, no need to write to new file.

The script is for log testing purposes.

Last edited by tklich; 06-25-2008 at 11:01 AM.. Reason: precising
# 4  
Old 06-25-2008
Quote:
Originally Posted by tklich
Sample input and output?

Well there are two files:
first:
Code:
001 name001
002 name002
003 name003

The second file, XML:
Code:
<main>
<some_data>
<id>001</id>
</some_data>
</main>

and the script, when finds xml's <id> field should write proper value, like "name001" for id=001. When <id> is not listed in first reference file, some error msg should occur. The output should be on-screen only, no need to write to new file.
[...]
OK,
could you post an example of the desired output?
Should it be in xml format?
# 5  
Old 06-25-2008
The desired output? No, there's no need to create any output file, only thing the srcipt should do is to write something, like:

Code:
Found id: 001. Test result: name001

# 6  
Old 06-25-2008
If AWK is acceptable:

Code:
awk 'NR == FNR { 
  _[$1] = $2
  next
  }
NF > 1 { 
  printf "Found id: %s. Test result: %s\n",
  $2, _[$2] ? _[$2] : "N/A"
}' first FS='<id>|</id>' xml

Use nawk or /usr/xpg4/bin/awk on Solaris.
# 7  
Old 06-25-2008
Thanks for quick reply!

But awk returns:

Code:
awk: syntax error near line 1
awk: bailing out near line 1

I'd prefer perl, but awk could also be acceptable.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

PERL help needed

Hi, I will be asking a series of major newbie questions, and you help is greatly appreciated in advance!! I have to write a script that will parse a logfile in a directory, the directory name changes daily. So far I have: #!/usr/bin/perl open LOGFILE,">logfile.txt"; ($day, $month,... (3 Replies)
Discussion started by: BG_JrAdmin
3 Replies

2. Shell Programming and Scripting

perl regex help needed

Hi, I want to validate strings in perl, the string may contains characters from a-zA-Z0-9 and symbols +-_.:/\ To validate such a string I computed a regex if ($string =~ m/^/) { print "valid"; } else { print "invalid"; } but this regex also validates strings that contain... (8 Replies)
Discussion started by: zing_foru
8 Replies

3. Shell Programming and Scripting

Help needed with Perl Script

i have the following script: #!/usr/local/bin/perl use STUN::Client; use Data::Dumper; use strict; my $stun_client = STUN::Client->new; $stun_client->stun_server('10.59.29.14'); my $r = $stun_client->get; my $ip = $r->{ma_address}; print "IP: $ip\n\nResult (hash):... (5 Replies)
Discussion started by: SkySmart
5 Replies

4. Shell Programming and Scripting

Perl script needed

For the following command I need a perl script equivalent with a couple of more things - cat /tmp/mail |grep Appname > /tmp/mail1;cat /tmp/mail >> /tmp/mail1; mail -s "mail subject here" allan@mail.com < /tmp/mail1; >/tmp/mail ; >/tmp/mail1 ================== cat /tmp/mail ***** Alert *****... (4 Replies)
Discussion started by: jacki
4 Replies

5. Shell Programming and Scripting

Perl command help needed

#!/bin/bash perl -nle' /(?:date|time|ref)/ and print join " ", /(?:date|time|ref)+/g or print ' inputfile Problem I have is that I want to delete words that are on the line of the 3 words above (date, time, and reference). However, I do not want to delete the words... (9 Replies)
Discussion started by: linuxkid
9 Replies

6. Shell Programming and Scripting

Perl script help needed..

Hi, I am new to perl scripting. Can anybody help me in solving the below problem. I have file, which is called map_file. According to map_file's last column data, i need a output file, which has repeats as like the map_file's last column name. Thank you in advance Vasanth (5 Replies)
Discussion started by: vasanth.vadalur
5 Replies

7. Shell Programming and Scripting

Perl Script Help Needed

I need this script to be able to check both IPs that are given to it and exit with an OK... if one of those expected IPs is returned. The script is run like this: /bin/dns_checker.pl -s 69.34.55.66 -q htt.jababa.com -e 69.44.56.33,45.47.43.55 Right now, the script is failing, but when I... (4 Replies)
Discussion started by: SkySmart
4 Replies

8. Shell Programming and Scripting

Help Needed Perl

Hi, I need your help on this script wherein I am matching up the input phone numbers for a partical pattern (xxx-xxxx). However in this I want to have null output where first value of input is null. ( For Example: $record = " ,111-5555") . Ideally I would expect to recieve input in this format... (6 Replies)
Discussion started by: john_prince
6 Replies

9. Shell Programming and Scripting

different result on shell and on perl HELP NEEDED

hi i am using this command which would return to be the filename ls -l $dir1 | awk '{print $9}' however on perl when i use: `ls -l $dir1 | awk '{print \$9}' > tmp` it gives me a different result. Everything is the same however a directory does not contain the the forward slash so i... (2 Replies)
Discussion started by: nookie
2 Replies

10. AIX

Perl.rte needed..

Hello I was installing ssh in Aix 4.3 but found that "perl.rte and rpm.rte" was not installed. but to my bad luck i was not able to find these packages for Aix 4.3. Ibm site just has these packages only for 5L. Can anyone help me in finding these packages. Bala (1 Reply)
Discussion started by: balaji_prk
1 Replies
Login or Register to Ask a Question