[CoLoCo] bash question

Jim Hutchinson jim at ubuntu-rocks.org
Fri Aug 19 21:17:38 UTC 2011


Thanks for the options. My problem with python or php is that I don't know
those at all and it's hard for me to decipher the scripts to understand what
they are doing or to modify them if needed. Of course, I could just run them
on faith and will give it a try.

Joey, for the big2.log reference, is that the file that would have all the
files names I want to process? If so, full path in there or can I use sort
path and run the scrip from the same folder?

Using awk was easier

awk '{sum=sum+$3} END {print sum}' file1.txt

Worked fine but only after manually taking out the header row. Still not
sure how to just ignore it. Also not sure how to read in multiple files and
output to one file.

I'll give this a try (David's idea too) and see what happens.

Thanks,
Jim

On Fri, Aug 19, 2011 at 3:08 PM, Joey Stanford <joey at canonical.com> wrote:

> I think the easier way is going to be with awk ... but here's a python
> program that's roughly equivalent...just not looking for the 3rd field
>
> #! /usr/bin/env python
>
> data = open('big2.log')
> totals = {}
> for line in data:
>    line = line.strip()
>    if line:
>        pageid = line.split()[1]
>        pagecount = int(line.split()[0])
>        if pageid in totals:
>           totals[pageid] += pagecount
>        else:
>           totals[pageid] = pagecount
>
> for key in totals:
>        print totals[key], key
>
>
> On Fri, Aug 19, 2011 at 14:45, Jim Hutchinson <jim at ubuntu-rocks.org>
> wrote:
> > Wondering if any of you script gurus can help with a small problem. I
> have
> > several text files containing 3 columns. I was to count the number of
> > occurrences of the text in column 2 (or just count the lines) and sum
> column
> > 3 which is a number. I know how to do the latter with something like
> >
> > #!/bin/bash
> >
> > file="/home/test/file1.txt"
> > cat ${file} | \
> > while read name article count
> > do
> > sum=$(($sum + $count ))
> > echo "$sum"
> > done
> >
> > Although that prints each sum as it goes rather than just the final sum.
> > I'm not sure how to count text (basically counting the lines that contain
> > the numbers would work the same). Also, because each file has a header
> row
> > it's giving errors so I need to tell it to skip row 1.
> > Finally, I want to automate the input of each file so having it read the
> > list of text files from somewhere, process the file, output to a new file
> > amending each time, and then repeat with the next one until all files are
> > done.
> > Any ideas?
> > Thanks.
> > --
> > Jim (Ubuntu geek extraordinaire)
> > ----
> > Please avoid sending me Word or PowerPoint attachments.
> > See http://www.gnu.org/philosophy/no-word-attachments.html
> >
> > --
> > Ubuntu-us-co mailing list
> > Ubuntu-us-co at lists.ubuntu.com
> > Modify settings or unsubscribe at:
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-us-co
> >
> >
>
> --
> Ubuntu-us-co mailing list
> Ubuntu-us-co at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-us-co
>



-- 
Jim (Ubuntu geek extraordinaire)
----
Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-us-co/attachments/20110819/c20f09d5/attachment.html>


More information about the Ubuntu-us-co mailing list