    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>Linux.com :: Parsing a log file to count file download</title>
        <link>http://www.linux.com/archive/forums/topic/1859</link>
        <description>Everything Linux and Open Source</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Linux.com Admin</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.linux.com" /> 
        <admin:errorReportsTo rdf:resource="mailto:noreply@linux.com" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>



<div class="xarbb-noteswrapper">
</div>

   <div class="xarbb-noteswrapper">
       <div class="xar-sub rightnote">
           <div>
                    <a href="http://www.linux.com/archive/forums/topic/1874">
Previous Topic</a>
|
                    <a href="http://www.linux.com/archive/forums/topic/2019">
Next Topic</a>
</div>

           <div>
                    <a href="http://www.linux.com/archive/forums/printtopic/1859?theme=print">
Print this topic</a> |
You are not subscribed            </div>
        </div>
        <div style="clear: both;"></div>
    </div>

    <h1>
        <a class="xar-title" href="http://www.linux.com/archive/forums/topic/1859">Parsing a log file to count file download</a>
   </h1>


   <div class="xarbb-topiccontrols">
<form action="http://www.linux.com/archive/forums?func=jump" method="post">
   <label for="xarbb_jump_menu">Forum Jump</label>
    <select name="f" id="xarbb_jump_menu" onchange="this.form.submit();">
        <optgroup label="Options">
            <option value="5" selected="selected">
Please select forum            </option>
            <option value="5">--------------------</option>
        </optgroup>
        <optgroup label="Forums">
                <option value="1">New to Linux</option>
                <option value="2">Hardware</option>
                <option value="3">Linux Distributions</option>
                <option value="4">Applications</option>
                <option value="5">Programming and Development</option>
                <option value="6">Miscellaneous Discussion</option>
                <option value="7">Linux.com Writers Forum</option>
                <option value="8">Jobs</option>
        </optgroup>
    </select>
    <input type="submit" class="button" value="Jump" />
</form>
<div style="clear: both;"></div>
   </div>

   <div class="xarbb-topiccontrols">

<span class="xar-sub">
    <a href="http://www.linux.com/archive/forums">
Forum Index    </a>
    <span style="font-size: larger;">&#187;</span>
    <a href="http://www.linux.com/archive/forums/category/4181">
        Forums 
    </a>
    <span style="font-size: larger;">&#187;</span>
    <a href="http://www.linux.com/archive/forums/forum/5">
        Programming and Development   </a>
</span>
<div style="clear: both;"></div>
   </div>

<div class="xarbb-tablewrapper">



   <table>
       <tr>
           <th scope="col">
Author</th>
           <th scope="col">
Message</th>
       </tr>



            <tr>
                <td class="xar-norm author">
                    <div>
                        <a href="http://www.linux.com/archive/roles/403841">Novi</a>
                   </div>
                   <div class="xar-sub">
Joined: May 27, 2008<br/>Posts: 2                        <br />
                        <a href="http://www.linux.com/archive/forums?by=403841&amp;func=searchtopics">
Other Topics</a>
                   </div>
               </td>

               <td class="xar-norm message">
                   <div class="xarbb-messagecontrols">
                       <div class="leftnote">
                           <span class="xar-sub">
Posted May 27, 2008 at 7:34:54 PM</span>
                       </div>



<div style="float: left;">
                           <strong class="xar-sub">
Subject: Parsing a log file to count file download                            </strong>
                        </div>
                        <div style="clear: both;"></div>
                    </div>

                    <div>
                        Just as the title says.

My original plan was to just run 

[code=xml]
grep &quot;GET /files/filename.lol&quot; access.log | wc -l
[/code]

The problem is there are multiple access per IP per timestamp.  What I'd like to do is group the lines by IP (which is the first entry in every line) and count those groups.

Ideas?  I'm relatively new to bash, but an experienced programmer.</div>

                </td>
            </tr>

            <tr>
                <td class="xar-norm author">
                    <a href="http://www.linux.com/archive/forums/topic/1859#top">
Back to top</a>
</td>
               <td class="xar-alt">

                        <a href="http://www.linux.com/archive/roles/403841">
                            <img src="modules/xarbb/xarimages/new/icon_profile.gif" alt="Profile" />
                        </a>
                        <a href="http://www.linux.com/archive/?module=roles&amp;func=email&amp;uid=403841">
                            <img src="modules/xarbb/xarimages/new/icon_email.gif" alt="Email" />
                       </a>
                            <a href="http://">
                                <img src="modules/xarbb/xarimages/new/icon_www.gif" alt="Website" />
                           </a>
</td>
           </tr>





           <tr>
               <td class="xar-norm author">
                   <strong>

                            <a href="http://www.linux.com/archive/roles/386930">
                                linuxdynasty                           </a>
</strong>

                   <span class="xar-sub">
<br />
Joined Aug 07, 2007<br/>Posts: 47<br />
                        <br />
                        <a href="http://www.linux.com/archive/forums?by=386930&amp;func=searchtopics">
Other Topics                        </a>
                    </span>
                </td>

                <td class="xar-accent message">
                   <div class="xarbb-messagecontrols">
                       <div class="leftnote">
                           <span class="xar-sub">
Posted:
                                May 29, 2008 2:46:23 AM                           </span>
                       </div>
                       <div class="rightnote">
</div>
                       <div style="float:left;">
                           <strong class="xar-sub">
Subject:
                                <a name="1190935" href="http://www.linux.com/archive/forums/topic/1859#1190935">
                                    Parsing a log file to count file download                                </a>
                            </strong>
                        </div>
                        <div style="clear: both;"></div>
                    </div>

                    <div style="clear: left;">
                        grep &quot;GET /files/filename.lol&quot; access.log | sort | uniq -c

uniq -c will give you the count of each occurance... Hope this helps

http://linuxdynasty.org Where IT pros come and share their knowledge..\                    </div>
                </td>
            </tr>

            <tr>
                <td class="xar-norm author">
                    <a href="http://www.linux.com/archive/forums/topic/1859#top">
Back to top</a>
</td>

               <td class="xar-alt">

                            <a href="http://www.linux.com/archive/roles/386930">
                                <img src="modules/xarbb/xarimages/new/icon_profile.gif" alt="Profile" />
                            </a>
                            <a href="http://www.linux.com/archive/?module=roles&amp;func=email&amp;uid=386930">
                                <img src="modules/xarbb/xarimages/new/icon_email.gif" alt="Email" />
                           </a>
                                <a href="http://www.linuxdynasty.org">
                                    <img src="modules/xarbb/xarimages/new/icon_www.gif" alt="Website" />
                               </a>
</td>
           </tr>

           <tr>
               <td class="xar-norm author">
                   <strong>

                            <a href="http://www.linux.com/archive/roles/403841">
                                Novi                           </a>
</strong>

                   <span class="xar-sub">
<br />
Joined May 27, 2008<br/>Posts: 2<br />
                        <br />
                        <a href="http://www.linux.com/archive/forums?by=403841&amp;func=searchtopics">
Other Topics                        </a>
                    </span>
                </td>

                <td class="xar-norm message">
                   <div class="xarbb-messagecontrols">
                       <div class="leftnote">
                           <span class="xar-sub">
Posted:
                                May 29, 2008 4:57:03 AM                           </span>
                       </div>
                       <div class="rightnote">
</div>
                       <div style="float:left;">
                           <strong class="xar-sub">
Subject:
                                <a name="1190942" href="http://www.linux.com/archive/forums/topic/1859#1190942">
                                    Re:  Re:  Parsing a log file to count file download                                </a>
                            </strong>
                        </div>
                        <div style="clear: both;"></div>
                    </div>

                    <div style="clear: left;">
                        [quote=linuxdynasty]grep &quot;GET /files/filename.lol&quot; access.log | sort | uniq -c
uniq -c will give you the count of each occurance... Hope this helps
[/quote]

What I ended up doing was running 

[code=xml]
 grep &quot;/files/filename.lol&quot; access.log | awk -F' ' '{print $1}' &gt; out.txt
[/code]
which gave me a list of the IPs, and I planned on writing a quick python script to find the unique IPs. But after reading your posting I combined it with sort and uniq -c and wc -l, and that gave me exactly what I wanted.

Thank you very much friend, I can't express how grateful I am.  You saved me a bit of time!

Thanks friend
[Modified by: Novi on May 29, 2008 04:58 AM]
                    </div>
                </td>
            </tr>

            <tr>
                <td class="xar-norm author">
                    <a href="http://www.linux.com/archive/forums/topic/1859#top">
Back to top</a>
</td>

               <td class="xar-alt">

                            <a href="http://www.linux.com/archive/roles/403841">
                                <img src="modules/xarbb/xarimages/new/icon_profile.gif" alt="Profile" />
                            </a>
                            <a href="http://www.linux.com/archive/?module=roles&amp;func=email&amp;uid=403841">
                                <img src="modules/xarbb/xarimages/new/icon_email.gif" alt="Email" />
                           </a>
                                <a href="http://">
                                    <img src="modules/xarbb/xarimages/new/icon_www.gif" alt="Website" />
                               </a>
</td>
           </tr>

           <tr>
               <td class="xar-norm author">
                   <strong>

                            <a href="http://www.linux.com/archive/roles/386930">
                                linuxdynasty                           </a>
</strong>

                   <span class="xar-sub">
<br />
Joined Aug 07, 2007<br/>Posts: 47<br />
                        <br />
                        <a href="http://www.linux.com/archive/forums?by=386930&amp;func=searchtopics">
Other Topics                        </a>
                    </span>
                </td>

                <td class="xar-accent message">
                   <div class="xarbb-messagecontrols">
                       <div class="leftnote">
                           <span class="xar-sub">
Posted:
                                May 29, 2008 12:08:14 PM                           </span>
                       </div>
                       <div class="rightnote">
</div>
                       <div style="float:left;">
                           <strong class="xar-sub">
Subject:
                                <a name="1190955" href="http://www.linux.com/archive/forums/topic/1859#1190955">
                                    Parsing a log file to count file download                                </a>
                            </strong>
                        </div>
                        <div style="clear: both;"></div>
                    </div>

                    <div style="clear: left;">
                        Hey no problem I was just glad I could help... I'm big into Python as well. Python is my language of choice... But as a good friend of mine told me... Use the right tool for the right situation!!

http://linuxdynasty.org Where IT pros come and share their knowledge..\                    </div>
                </td>
            </tr>

            <tr>
                <td class="xar-norm author">
                    <a href="http://www.linux.com/archive/forums/topic/1859#top">
Back to top</a>
</td>

               <td class="xar-alt">

                            <a href="http://www.linux.com/archive/roles/386930">
                                <img src="modules/xarbb/xarimages/new/icon_profile.gif" alt="Profile" />
                            </a>
                            <a href="http://www.linux.com/archive/?module=roles&amp;func=email&amp;uid=386930">
                                <img src="modules/xarbb/xarimages/new/icon_email.gif" alt="Email" />
                           </a>
                                <a href="http://www.linuxdynasty.org">
                                    <img src="modules/xarbb/xarimages/new/icon_www.gif" alt="Website" />
                               </a>
</td>
           </tr>

           <tr>
               <td class="xar-norm author">
                   <strong>

                            <a href="http://www.linux.com/archive/roles/404794">
                                Johannes Truschnigg                           </a>
</strong>

                   <span class="xar-sub">
<br />
<br />
Joined Jun 15, 2008<br/>Posts: 27<br />
                        <br />
                        <a href="http://www.linux.com/archive/forums?by=404794&amp;func=searchtopics">
Other Topics                        </a>
                    </span>
                </td>

                <td class="xar-norm message">
                   <div class="xarbb-messagecontrols">
                       <div class="leftnote">
                           <span class="xar-sub">
Posted:
                                Jun 15, 2008 8:16:54 PM                           </span>
                       </div>
                       <div class="rightnote">
</div>
                       <div style="float:left;">
                           <strong class="xar-sub">
Subject:
                                <a name="1192317" href="http://www.linux.com/archive/forums/topic/1859#1192317">
                                    Re:  Re:  Re:  Re:  Parsing a log file to count file download                                </a>
                            </strong>
                        </div>
                        <div style="clear: both;"></div>
                    </div>

                    <div style="clear: left;">
                        awk has regex matching built-in natively, so [code=xml]
 grep &quot;/files/filename.lol&quot; access.log | awk -F' ' '{print $1}' &gt; out.txt
[/code]

might more efficiently be written as
[code=xml]
awk -F' ' '/\/files\/filename\.lol/{print $1}' access.log &gt; out.txt
[/code]

Of course, it's also possible to implement the functionality of the `sort` and `uniq` programs in awk, as it's a complete programming language, but that would not actually benefit performance and/or complexity.
[Modified by: Johannes Truschnigg on June 15, 2008 09:17 PM]
<p class="hiddensignature">
Free software. Free society. Better lives.</p>
                    </div>
                </td>
            </tr>

            <tr>
                <td class="xar-norm author">
                    <a href="http://www.linux.com/archive/forums/topic/1859#top">
Back to top</a>
</td>

               <td class="xar-alt">

                            <a href="http://www.linux.com/archive/roles/404794">
                                <img src="modules/xarbb/xarimages/new/icon_profile.gif" alt="Profile" />
                            </a>
                            <a href="http://www.linux.com/archive/?module=roles&amp;func=email&amp;uid=404794">
                                <img src="modules/xarbb/xarimages/new/icon_email.gif" alt="Email" />
                           </a>
                                <a href="http://johannes.truschnigg.info/">
                                    <img src="modules/xarbb/xarimages/new/icon_www.gif" alt="Website" />
                               </a>
</td>
           </tr>
</table>
</div>

<div class="xarbb-topiccontrols">

<span class="xar-sub">
    <a href="http://www.linux.com/archive/forums">
Forum Index    </a>
    <span style="font-size: larger;">&#187;</span>
    <a href="http://www.linux.com/archive/forums/category/4181">
        Forums 
    </a>
    <span style="font-size: larger;">&#187;</span>
    <a href="http://www.linux.com/archive/forums/forum/5">
        Programming and Development   </a>
</span>

</div>



            </channel>
</rss>
