in reply to Re^4: Print word from text file that is not an exact match
in thread Print word from text file that is not an exact match
There are ways to avoid repeat searches of each line but this should get you started.
poj#!/usr/bin/perl use strict; my $count = 0; my $namefile = $ARGV[0] || 'names.txt'; # default if no argument # names.txt #ServerName1 #ServerName2 # get list of computers to search for my @computers; open FILE,'<',$namefile or die "Could not open $namefile : $!"; while (<FILE>){ chomp; s/^\s+|\s+$//g; # trim spaces next unless /\S/; # skip blank lines push @computers,$_; } close FILE; my $file = "computernames.txt"; # computernames.txt #<Answer type="string">ServerName1.FD.net.org</Answer> #<Answer type="string">ServerName2.FD.net.org</Answer> #<Answer type="string">ServerName3.FD.net.org</Answer> # search text file open IN, '<',$file or die "Could not open $file : $!"; while (my $line = <IN>){ # repeat line search for each computer foreach my $search (@computers) { if ( my ($name) = $line =~ /($search[\.\w]*)/ ){ print "Name ; $name\n"; ++$count; } } } close IN; # result if ($count){ print "$count matches\n"; } else { print "No matches found\n"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Print word from text file that is not an exact match
by TonyNY (Beadle) on Jun 09, 2018 at 21:45 UTC | |
by TonyNY (Beadle) on Jun 10, 2018 at 18:31 UTC | |
by poj (Abbot) on Jun 10, 2018 at 19:08 UTC | |
by TonyNY (Beadle) on Jun 10, 2018 at 23:57 UTC | |
by poj (Abbot) on Jun 11, 2018 at 07:53 UTC | |
|