04-22-2008
Here is the exact sub that I now have in the script
#***********************
sub runit2 {
my ($file1a, $file2a) = @_;
my $file1_vala = $file1a->get;
my $file2_vala = $file2a->get;
open (FILE1a, "$file1_vala") or die;
open (FILE2a, "$file2_vala") or die;
$text->insert('end', "Device config contains: \n");
chomp(my @strings = <FILE2a>);
while (1) {
foreach $pattern (<FILE1a>) {
chomp($pattern);
last if $pattern =~ /^\s*$/;
my @matches = eval {
#grep /$pattern/, @strings;
grep $pattern eq $_, @strings
};
if ($@) {
print "Error: $@";
} else {
my $count = @matches;
$text->insert('end', "$count $pattern \n");
}
}
return;
}
close FILE1a;
close FILE2a;
}
If I take out the infinite while loop, the output is
"Device config contains:
1 no service tcp-small-servers"
Thats it, no further iteration.
If I leave it in, a snip of the output which is really not desirable ...
.
.
.
.
.
2 snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart
1 snmp-server enable traps frame-relay
1 snmp-server enable traps frame-relay subif
1 snmp-server enable traps config
1 ip tacacs source-interface loopback0
1 snmp-server trap-source loopback0
1 ip flow-export source fa0/0
1 ip flow-export version 5 origin-as
1 ip flow-export destination 10.15.1.2 9996
1 ip flow-cache timeout active 1
1 ip flow-cache timeout inactive 15
2 snmp-server ifindex persist
1 logging trap notifications
1 logging source-interface fa0/0
2 snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart
1 privilege exec level 1 traceroute
1 privilege exec level 1 ping
1 privilege exec level 1 show configuration
1 line con 0
2 exec-timeout 5 0
3 login
1 line aux 0
2 exec-timeout 5 0
3 login
1 line vty 0 4
1 exec-timeout 30 0
1 no privilege level 15
1 no access-class 23 in
3 login
1 end
If I modify the code above to
#***********************
sub runit2 {
my ($file1a, $file2a) = @_;
my $file1_vala = $file1a->get;
my $file2_vala = $file2a->get;
open (FILE1a, "$file1_vala") or die;
open (FILE2a, "$file2_vala") or die;
$text->insert('end', "Device config contains: \n");
#*******************************
foreach $pattern (<FILE1a>) {
chomp($pattern);
last if $pattern =~ /^\s*$/;
my $matches = grep $pattern eq $_, @strings;
++$count{$pattern} if $matches;
}
for my $key (keys %count) {
print "$count{$key} $key\n";
}
#*******************************
close FILE1a;
close FILE2a;
}
I would expect the hash to be printed in the "dos" window.
If the following is included, I get very many errors.
use strict
%count = ();
If omitted, nothing is printed to the dos window, but it does run.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
I have a landing area where some files keep on coming after irregular intervals of time. From this landing area, I need to move files to another directory for processing. For this, I am using a for loop to find certain kinds of files in the landing area.
Now my question is, suppose I start... (6 Replies)
Discussion started by: neelaksh
6 Replies
2. UNIX for Dummies Questions & Answers
ls displays files in tabbed output. Say a directory contains 3 files. ls will list all 3 in one line. So, I expect ls | wc -l to give 1, but it counts the nr of files and gives 3.
Can someone explain how this works? (3 Replies)
Discussion started by: krishmaths
3 Replies
3. Programming
pls explain me how this works....
DECODE (SUBSTR (field, 1, 1),'''', '''''' || field || '''','''' || field || '''')
here field is a column in an oracle table.... (7 Replies)
Discussion started by: vijay_0209
7 Replies
4. UNIX for Dummies Questions & Answers
When I try to execute script, I get message:
>aa.pl
zsh: command not found: aa.pl
but
>./aa.pl
works OK.
What to change in environment to force the former way to work?
Thank you,
Alex Z (4 Replies)
Discussion started by: zzol
4 Replies
5. Shell Programming and Scripting
Hi,
I am curious about this script , how it is running ..?
#!/bin/sh
echo "OK, starting now..."
ftp remotehost <<EOF
When I run , it is asking
OK, starting now...
Password:Name (remotehost):
SHould I enter only password ?
and explain me how it works..
thanks in advance.. (3 Replies)
Discussion started by: hegdeshashi
3 Replies
6. UNIX for Advanced & Expert Users
I have a program............
#include<stdio.h>
#include<unistd.h>
main()
{
if(fork == 0)
{
printf("Hi every body:p!!!!!!!!!!");
}
}
This program works with out any error. here fork is not a system call. It just act as a variable.But how it works without declaring it? What data type it... (19 Replies)
Discussion started by: carolsanjeevi
19 Replies
7. UNIX for Dummies Questions & Answers
Hi,
Could you please suggest a tool that connects like WINSCP/Putty and allows me to search a remote Unix directory for a certain text pattern (grep) ?
Regards,
Bhanja. (1 Reply)
Discussion started by: bhanja_trinanja
1 Replies
8. Shell Programming and Scripting
i have this line of code that looks for the same file if it is currently running and returns the count.
`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`
basically it is assigned to a variable
ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies
9. Shell Programming and Scripting
Hi,
On linux i have the below command working fine.
grep -o '<name>.*</name>' deploy.tmp | sed 's/\(<name>\|<\/name>\)//g' deploy.tmp
But the same is failing on Solaris
uname -a
SunOS mymac 5.10 Generic_150400-23 sun4v sparc sun4v
Can you tell me how can i get it work on Solaris ?... (6 Replies)
Discussion started by: mohtashims
6 Replies
10. Shell Programming and Scripting
Hi,
I'm trying to make a grep to see if exists occurrences with a sentence like these:
grep -qi "message" file0 | grep -i $date | grep -vi "exception"
echo $?
1
If I execute without -q modifier I can find occurrences.
Someone could help me please?
Thanks and sorry for my English! (1 Reply)
Discussion started by: mierdatuti
1 Replies
ZGREP(1) General Commands Manual ZGREP(1)
NAME
zgrep - search possibly compressed files for a regular expression
SYNOPSIS
zgrep [ grep_options ] [ -e ] pattern filename...
DESCRIPTION
Zgrep invokes grep on compressed or gzipped files. These grep options will cause zgrep to terminate with an error code:
(-[drRzZ]|--di*|--exc*|--inc*|--rec*|--nu*). All other options specified are passed directly to grep. If no file is specified, then the
standard input is decompressed if necessary and fed to grep. Otherwise the given files are uncompressed if necessary and fed to grep.
If the GREP environment variable is set, zgrep uses it as the grep program to be invoked.
EXIT CODE
2 - An option that is not supported was specified.
AUTHOR
Charles Levert (charles@comm.polymtl.ca)
SEE ALSO
grep(1), gzexe(1), gzip(1), zdiff(1), zforce(1), zmore(1), znew(1)
ZGREP(1)