Matching text using grep


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Matching text using grep
# 1  
Old 07-03-2012
Matching text using grep

Hi folks...

Relatively new to scripting, but really struggling with something that will no doubt be second nature to most people on here:

Trying to get an exact match on $sub, where sub is an ip address.

Code:
subnet () 
{  
   clear         
   while true         
   do                 
      echo "\n "                 
      echo "Please enter the subnet to be changed: \c"                 
      read sub                 
      grep -w "$sub" subnet                 
      if [[ $? -eq 0 ]]                 
      then                         
           print "Matched"                         
           break;                 
      else 
           echo "\n\n\tNot a valid subnet - please try again.";                 
      fi         
   done 
}

As a testing mechanism I've created a file called subnet, containing 111.222.333.0, but no matter what I seem to do, I can't get it to match and "only" match the exact content of subnet.

Any one able to help?

Thanks
Cica


Moderator's Comments:
Mod Comment Video tutorial on how to use code tags in The UNIX and Linux Forums.

Last edited by CiCa; 07-03-2012 at 06:22 AM.. Reason: code tags
# 2  
Old 07-03-2012
Make it clear on the format of the data in the file subnet on which you are doing a grep?
# 3  
Old 07-03-2012
This works for me
Code:
grep -i "$ip" file

# 4  
Old 07-03-2012
Please show an example of your input and expected output using code tags, thanks.
# 5  
Old 07-03-2012
The above code works in bash - although I'm using ksh in this instance.
# 6  
Old 07-03-2012
Code:
# cat subnet
111.222.333.0
222.111.333.0
333.222.111.0

is like that a problem ?
Code:
# grep -w "111" subnet
111.222.333.0
222.111.333.0
333.222.111.0
# grep -w "^111" subnet
111.222.333.0

note : 333 is not a valid mask value , just for an example input
# 7  
Old 07-03-2012
what if you have 127.0.0.18 and 127.0.0.128 in the file? You will get a match if you look for 127.0.0.1 even if it isn't in there...

grep -i is a wild way of getting some clue for something else and cant be trusted when u look for something in particular. And -i is for case insensitive search and will not hold for numerals and special characters.

!?!?!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Matching and where, using grep

May somebody can give me a hint. I want to find using the command "grep" a certain word or term in a foo.txt file. By using the following command grep -i word file1 > newfile4 it puts it into a new foo.txt-file, the n times it matches. Fine, it matches n times, but how could I specify where... (2 Replies)
Discussion started by: 1in10
2 Replies

2. Shell Programming and Scripting

Grep with ... matching more than 3 characters

I am trying to understand what the grep command in ubuntu is trying to do here. The contents of my test file is given below harsha@harsha-H67MA-USB3-B3:~/Documents$ cat data abcd efghi jklmno pqr stuv wxyz When I grep for 3 dots (...) without the parenthesis as follows I would expect the... (4 Replies)
Discussion started by: sreeharshasn
4 Replies

3. UNIX for Dummies Questions & Answers

Regex matching with grep -l

I am trying to find patterns in files using grep -l -e. I specifically am searching for abc. I want any file that has abc in it, but not just the letters abc. I am searching for a pattern a followed by b followed by c. I have tried egrep -l and also I have tried the following: grep -el... (2 Replies)
Discussion started by: newbie2010
2 Replies

4. Shell Programming and Scripting

Grep negative matching

is it possible to reverse the output of grep -o (9 Replies)
Discussion started by: squrcles
9 Replies

5. Shell Programming and Scripting

Grep -v (inverse matching)

I am totally unexperienced in writing scripts of any kind. I am working on Mac OS X and would like to run a shell script to find files in a directory that do not conform to a specific naming convention and print to a text file in the same directory. For example, I have a folder called... (9 Replies)
Discussion started by: j_alicea
9 Replies

6. Shell Programming and Scripting

Grep text matching problem with script which checks if web page contains text.

I wrote a Bash script which checks to see if a text string exists on a web page and then sends me an email if it does (or does not e.g. "Out of stock"). I run it from my crontab, it's quite handy from time to time and I've been using it for a few years now. The script uses wget to download an... (6 Replies)
Discussion started by: gencon
6 Replies

7. Shell Programming and Scripting

Grep the non-matching lines

Hi, I need to make a script to extract the number that are not in a file. Example: I have file-A that has 100000 (70000-799999) numbers. And a file-B with number that already are in the system. Now I need to know/get the numbers that are not in system. I was thinking something like this:... (5 Replies)
Discussion started by: AK47
5 Replies

8. UNIX for Dummies Questions & Answers

Issues while pattern matching using grep

Hi, I have a file f1 wi the following data f1.txt ======== Report ID Report Name ----------------------------------------------------------------- Post Requests : 2 Post successes : 2 ============================================= I need to search for the... (2 Replies)
Discussion started by: RP09
2 Replies

9. Shell Programming and Scripting

Matching white space through Grep

Hello All, I am trying to match white space in patterns through - Grep I tried ] & ] but none of them worked. Then I tried Perl extension '\s' and it worked. So just wanted to know if ] & ] are still supported or have they become deprecated. However they have been mentioned in the... (3 Replies)
Discussion started by: paragkalra
3 Replies

10. UNIX for Advanced & Expert Users

Grep Line with Matching Fields

Below is the scenario. Help is appreciated. File1: ( 500,000 lines ) : Three fields comma delimited : Not sorted 1234FAA,435612,88975 1224FAB,12345,212356 File2: ( 4,000,000 lines ) : Six fields comma delimited (Last 3 field should match the 3 fields of File1) : Not Sorted : ... (13 Replies)
Discussion started by: hemangjani
13 Replies
Login or Register to Ask a Question