IP pattern matching


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting IP pattern matching
# 1  
Old 08-17-2011
IP pattern matching

Hi

I am writing a BASH script with egrep and I am trying to find the amount of times IP address appears in a mailbox file. I have this so far for my search criteria but the count it is bringing back is way too high so I think that maybe it is picking out all of the numbers in the file or something.
Code:
IP=`egrep -c -o '[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]' sussmail.mbx`

It brings back a count of 1850 but I think there is only roughly about 60, here is what the IP address look like,
Code:
1 [10.1.32.1] 1 [10.191.12.74] 1 [10.192.2.40] 3 [127.0.0.1] 2  [146.169.1.193] 2 [146.169.1.194] 2 [146.169.1.19] 1 [150.237.196.3] 19  [150.237.47.10] 16 [150.237.47.11] 18 [150.237.47.12] 17 [150.237.47.13]  1 [172.20.83.136] 2 [193.237.198.98] 5 [193.62.81.135] 5 [194.159.0.5] 1  [198.170.237.184] 1 [209.128.108.231] 1 [209.173.36.26] 1  [210.185.5.150] 1 [211.158.42.86] 1 [212.137.70.24] 1 [212.137.70.29] 1  [212.54.58.29] 1 [213.46.219.2] 2 [216.27.94.118] 1 [217.12.11.41] 1  [219.233.158.42] 1 [221.13.213.227] 1 [24.248.34.16] 1 [24.248.35.12] 1  [24.5.242.4] 1 [4.8.162.227] 1 [61.173.20.39] 1 [62.212.104.34] 1  [62.254.210.72] 1 [62.62.153.22] 1 [62.62.156.8] 1 [62.70.0.98] 1  [63.13.156.15] 1 [64.12.138.20] 2 [64.4.240.67] 1 [64.63.240.3] 1  [64.63.254.164] 2 [65.110.11.163] 1 [65.197.174.112] 1 [66.135.215.134] 1  [66.135.215.179] 4 [66.179.230.118] 2 [66.179.230.120] 1 [66.218.66.27]  1 [66.218.66.70] 1 [67.42.156.209] 1 [68.102.23.149] 1 [68.124.41.67] 1  [68.162.184.128] 1 [80.179.254.11] 1 [80.225.154.32] 1 [80.253.114.184]  2 [80.71.3.114] 1 [81.135.3.19] 1 [81.169.152.110]

I am not very good with writing out the expressions, can someone help to write a better expression to capture the IP address better.

Thanks to all who help.
# 2  
Old 08-17-2011
please post some lines from the sussmail.mbx and also mention the required format of output
# 3  
Old 08-17-2011
It outputs it to a html file and the IP address which I am trying to find are listed above, but here are a few lines from the file.

Code:
From online@xxxx Tue Jun 22 13:35:58 2004
Received: from [1.1.1.1] (helo=zzzz)
    by wwww with esmtp (Exim 3.03 #2)
    id 1BckVH-0000u8-00
    for bct@vvvv; Tue, 22 Jun 2004 13:35:55 +0100
Received: from yyyy ([2.2.2.2])
    by zzzz with esmtp (Exim 4.24)
    id 1BckVK-0007Zn-3Y


Last edited by pludi; 08-17-2011 at 08:58 AM..
# 4  
Old 08-17-2011
Quote:
Originally Posted by 9aza
It outputs it to a html file and the IP address which I am trying to find are listed above, but here are a few lines from the file.

Code:
From online@xxxx Tue Jun 22 13:35:58 2004
Received: from [1.1.1.1] (helo=zzzz)
    by wwww with esmtp (Exim 3.03 #2)
    id 1BckVH-0000u8-00
    for bct@vvvv; Tue, 22 Jun 2004 13:35:55 +0100
Received: from yyyy ([2.2.2.2])
    by zzzz with esmtp (Exim 4.24)
    id 1BckVK-0007Zn-3Y

So you want total counts of above highlighted pattern..?
Code:
egrep -c '\[[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\]' inputfile

This User Gave Thanks to michaelrozar17 For This Post:
# 5  
Old 08-17-2011
Yeah that works great thanks. How would I get it to output what it is counting so I can see if it has got all of the IP addresses?
Also when it creates the output file, the html file, it saves the file but saves it like "output.html." with a full stop on the end. So when it opens it does not work, but I remove the full stop from the end of the filename and then it works. What might be causing this? Also the command line displays an error saying
' : not a valid identifiereclare: `
What does this mean because it still works kind of, baring the output issue.
# 6  
Old 08-17-2011
Code:
$awk -F"[][]" ' /Received/ { print $2 }' ip.txt  | sort | uniq -c
      1 1.1.1.1
      1 2.2.2.2

first column 1 is the count
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Big pattern file matching within another pattern file in awk or shell

Hi I need to do a patten match between files . I am new to shell scripting and have come up with this so far. It take 50 seconds to process files of 2mb size . I need to tune this code as file size will be around 50mb and need to save time. Main issue is that I need to search the pattern from... (2 Replies)
Discussion started by: nitin_daharwal
2 Replies

2. UNIX for Dummies Questions & Answers

Grep -v lines starting with pattern 1 and not matching pattern 2

Hi all! Thanks for taking the time to view this! I want to grep out all lines of a file that starts with pattern 1 but also does not match with the second pattern. Example: Drink a soda Eat a banana Eat multiple bananas Drink an apple juice Eat an apple Eat multiple apples I... (8 Replies)
Discussion started by: demmel
8 Replies

3. Shell Programming and Scripting

PHP - Regex for matching string containing pattern but without pattern itself

The sample file: dept1: user1,user2,user3 dept2: user4,user5,user6 dept3: user7,user8,user9 I want to match by '/^dept2.*/' but don't want to have substring 'dept2:' in output. How to compose such regex? (8 Replies)
Discussion started by: urello
8 Replies

4. Shell Programming and Scripting

Sed: printing lines AFTER pattern matching EXCLUDING the line containing the pattern

'Hi I'm using the following code to extract the lines(and redirect them to a txt file) after the pattern match. But the output is inclusive of the line with pattern match. Which option is to be used to exclude the line containing the pattern? sed -n '/Conn.*User/,$p' > consumers.txt (11 Replies)
Discussion started by: essem
11 Replies

5. UNIX for Dummies Questions & Answers

Find pattern suffix matching pattern

Hi, I am trying to get a result out of this but fails please help. Have two files /tmp/1 & /tmp/hosts. /tmp/1 IP=123.456.789.01 WAS_HOSTNAME=abcdefgh.was.tb.dsdc /tmp/hosts 123.456.789.01 I want this result in /tmp/hosts if hostname is already there dont want duplicate entry. ... (5 Replies)
Discussion started by: rajeshwebspere
5 Replies

6. Shell Programming and Scripting

sed - matching pattern one but not pattern two

All, I have the following file: -------------------------------------- # # /etc/pam.d/common-password - password-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services... (2 Replies)
Discussion started by: RobertBerrie
2 Replies

7. Shell Programming and Scripting

counting the lines matching a pattern, in between two pattern, and generate a tab

Hi all, I'm looking for some help. I have a file (very long) that is organized like below: >Cluster 0 0 283nt, >01_FRYJ6ZM12HMXZS... at +/99% 1 279nt, >01_FRYJ6ZM12HN12A... at +/99% 2 281nt, >01_FRYJ6ZM12HM4TS... at +/99% 3 283nt, >01_FRYJ6ZM12HM946... at +/99% 4 279nt,... (4 Replies)
Discussion started by: d.chauliac
4 Replies

8. Shell Programming and Scripting

Pattern Matching

Hi Folks, I have the following requirement: I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName. I need to take out all the COPDB.TableName pattern and write it to a different... (6 Replies)
Discussion started by: Siv_Pat
6 Replies

9. UNIX for Dummies Questions & Answers

Pattern Matching

Hi Folks, I have the following requirement: I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName. I need to take out all the COPDB.TableName pattern and write it to a different... (0 Replies)
Discussion started by: Siv_Pat
0 Replies

10. Shell Programming and Scripting

comment/delete a particular pattern starting from second line of the matching pattern

Hi, I have file 1.txt with following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433 ** ** ** In file 2.txt I have the following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433... (4 Replies)
Discussion started by: imas
4 Replies
Login or Register to Ask a Question