in reply to grep function does not recognize string
You can see that for 4256, 10 and 11 are defined, while the rest is not, which is exactly the situation in your example.4215-Femto_10 er ikke definert 4215-Femto_11 er ikke definert 4215-Femto_12 er ikke definert 4215-Femto_13 er ikke definert 4215-Femto_14 er ikke definert 4215-Femto_15 er ikke definert 4216-Femto_10 er ikke definert 4216-Femto_11 er ikke definert 4216-Femto_12 er ikke definert 4216-Femto_13 er ikke definert 4216-Femto_14 er ikke definert 4216-Femto_15 er ikke definert 4224-Femto_10 er ikke definert 4224-Femto_11 er ikke definert 4224-Femto_12 er ikke definert 4224-Femto_13 er ikke definert 4224-Femto_14 er ikke definert 4224-Femto_15 er ikke definert 4225-Femto_10 er ikke definert 4225-Femto_11 er ikke definert 4225-Femto_12 er ikke definert 4225-Femto_13 er ikke definert 4225-Femto_14 er ikke definert 4225-Femto_15 er ikke definert 4234-Femto_10 er ikke definert 4234-Femto_11 er ikke definert 4234-Femto_12 er ikke definert 4234-Femto_13 er ikke definert 4234-Femto_14 er ikke definert 4234-Femto_15 er ikke definert 4235-Femto_10 er ikke definert 4235-Femto_11 er ikke definert 4235-Femto_12 er ikke definert 4235-Femto_13 er ikke definert 4235-Femto_14 er ikke definert 4235-Femto_15 er ikke definert 4244-Femto_10 4244-Femto_11 4244-Femto_12 4244-Femto_13 4244-Femto_14 4244-Femto_15 4245-Femto_10 4245-Femto_11 4245-Femto_12 4245-Femto_13 4245-Femto_14 4245-Femto_15 4254-Femto_10 4254-Femto_11 4254-Femto_12 4254-Femto_13 4254-Femto_14 4254-Femto_15 4255-Femto_10 4255-Femto_11 4255-Femto_12 4255-Femto_13 4255-Femto_14 4255-Femto_15 4256-Femto_10 4256-Femto_11 4256-Femto_12 er ikke definert 4256-Femto_13 er ikke definert 4256-Femto_14 er ikke definert 4256-Femto_15 er ikke definert 4264-Femto_10 er ikke definert 4264-Femto_11 er ikke definert 4264-Femto_12 er ikke definert 4264-Femto_13 er ikke definert 4264-Femto_14 er ikke definert 4264-Femto_15 er ikke definert 4265-Femto_10 er ikke definert 4265-Femto_11 er ikke definert 4265-Femto_12 er ikke definert 4265-Femto_13 er ikke definert 4265-Femto_14 er ikke definert 4265-Femto_15 er ikke definert 4266-Femto_10 er ikke definert 4266-Femto_11 er ikke definert 4266-Femto_12 er ikke definert 4266-Femto_13 er ikke definert 4266-Femto_14 er ikke definert 4266-Femto_15 er ikke definert 4274-Femto_10 er ikke definert 4274-Femto_11 er ikke definert 4274-Femto_12 er ikke definert 4274-Femto_13 er ikke definert 4274-Femto_14 er ikke definert 4274-Femto_15 er ikke definert 4275-Femto_10 er ikke definert 4275-Femto_11 er ikke definert 4275-Femto_12 er ikke definert 4275-Femto_13 er ikke definert 4275-Femto_14 er ikke definert 4275-Femto_15 er ikke definert 4284-Femto_10 er ikke definert 4284-Femto_11 er ikke definert 4284-Femto_12 er ikke definert 4284-Femto_13 er ikke definert 4284-Femto_14 er ikke definert 4284-Femto_15 er ikke definert
#!/usr/bin/perl use strict; use warnings; unlink '/tmp/kids.txt'; open my $INPUT, '/tmp/femto_check_edited2.txt' or die $!; open my $IN, '/tmp/utrancell_edited2.txt' or die $!; my @list_match; while(<$INPUT>){ chomp; push @list_match, $_; } close $INPUT; open my $KIDS, '>', '/tmp/kids.txt' or die $!; while (my $line = <$IN>) { chomp $line; for my $num (10 .. 15) { if (grep(/$line-Femto_$num/, @list_match) == 1) { print "$line-Femto_$num\n"; } else { print "$line-Femto_$num er ikke definert\n"; print {$KIDS} " $line-Femto_$num er ikke definert\n +"; } } } close $KIDS; close $IN;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: grep function does not recognize string
by Anonymous Monk on May 03, 2012 at 14:22 UTC | |
do not omit or die after open. Unless you add use autodie; | [reply] |
|
Re^2: grep function does not recognize string
by korak (Initiate) on May 07, 2012 at 08:34 UTC | |
Thanks a lot for the suggested code improvement, I can see that I have a lot to learn about reducing code! However the problem still remains. I have therefore pasted the 2 files below for you to have a look: femto_check_edited2.txt
utrancell_edited2.txt
I can not see that there are any spaces or other characters that shouldn't be present in any of the files | [reply] [d/l] [select] |
by choroba (Cardinal) on May 07, 2012 at 12:41 UTC | |
The reason is that you do not anchor your regex with ^, but you test the result of grep to be == 1. But for 4285, the result is == 2, because 4285 is contained in both 4285 and 24285. | [reply] |
by korak (Initiate) on May 08, 2012 at 07:09 UTC | |
Yes!!! Of course.... | [reply] |