Sponsored Content
Top Forums Shell Programming and Scripting Still trying to get a grep -c that works Post 302188104 by popeye on Tuesday 22nd of April 2008 04:02:14 PM
Old 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

How the for loop works?

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

How ls | wc -l works?

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

how this works?

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

>./a.pl works, >a.pl - does not

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

how it works ? sftp

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

How this works?

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

Need a visual grep tool that works on windows via sftp

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

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

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

Grep works on Linux but fails on Solaris

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

Grep -q not works with multiples grep in same line

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
NWBOLS(1)							      nwbols								 NWBOLS(1)

NAME
nwbols - List NetWare Bindery Objects SYNOPSIS
nwbols [ -h ] [ -S server ] [ -U user name ] [ -P password | -n ] [ -C ] [ -t type ] [ -o pattern ] [ -v ] DESCRIPTION
nwbols lists the specified NetWare Bindery Objects visible for the user. nwbols looks up the file $HOME/.nwclient to find a file server, a user name and possibly a password. See nwclient(5) for more information. Please note that the access permissions of $HOME/.nwclient MUST be 600 for security reasons. OPTIONS
-h -h is used to print out a short help text. -S server server is the name of the server you want to use. -U user user is the user name to use for login. -P password password is the password to use for login. If neither -n nor -P are given, and the user has no open connection to the server, nwbols prompts for a password. -n -n should be given if no password is required for the login. -C By default, passwords are converted to uppercase before they are sent to the server, because most servers require this. You can turn off this conversion by -C. -t type You can restrict the objects listed by specifying the type of the objects to be listed. type must be given as a decimal number. -o pattern Specifying a pattern is another way to restrict the objects listed. Please note that this pattern is evaluated by the NetWare server. grep would be a better candidate for complex patterns. -v By default, the object's name, its ID and its type are listed by nwbols. In the verbose mode, activated by -v, the object flags, its security byte and the properties flag is also listed. AUTHORS
nwbols was written by Volker Lendecke. See the Changes file of ncpfs for other contributors. nwbols 7/9/1996 NWBOLS(1)
All times are GMT -4. The time now is 11:10 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy