help with shell script

Peter Matulis petermatulis at yahoo.ca
Wed Oct 12 23:36:41 PDT 2005


--- Peter Matulis <petermatulis at yahoo.ca> wrote:

> 
> --- Philip Hallstrom <freebsd at philip.pjkh.com> wrote:
> 
> > > 1. This gives me the amount of space (kB) taken up by the 10 largest ports:
> > >
> > > $ pkg_info -as | grep ^[0-9] | sort -gr | head -10 | cut -c 1-6
> > >
> > > 2. Using one figure from above list I produce the details of the corresponding port:
> > >
> > > $ pkg_info -as | grep -B3 240695
> > >
> > > Output:
> > > ------------------------------------------------------
> > > Information for linux_base-8-8.0_6:
> > >
> > > Package Size:
> > > 240695  (1K-blocks)
> > > ------------------------------------------------------
> > >
> > > I would like the output of the script to be the above but for all ten ports (~40 lines;
> > insert
> > > a blank line between each?).  I know I need some sort of iteration but I am rusty on
> > scripting.
> > > Can anyone help?
> > 
> > This should get you close... if you want only the top 10 just add more 
> > pipes to the end with sort and head...
> > 
> > ----------------------------------------------------
> > #!/bin/sh
> > 
> > newline='\
> > '
> > 
> > pkg_info -as | \
> >          tr '\n' ' ' | \
> >          sed -e 's/Package Size://g' \
> >                  -e "s/(1K-blocks)/$newline/g" |\
> >          sed -e 's/^  *Information for //'
> > ----------------------------------------------------
> 
> What I need is the size as the first item (not the second) on each line.  Then I can use
> sort.

Allrighty, I employed some awk to get a good enough output:

----------------------------------------------------
#!/bin/sh

newline='\
'

pkg_info -as | \
         tr '\n' ' ' | \
         sed -e 's/Package Size://g' \
                 -e "s/(1K-blocks)/$newline/g" | \
         tr ':' ' ' | \
         awk '{print$4,"   ",$3}' | \
         sort -gr | \
         head -30
----------------------------------------------------

Thanks.


	

	
		
__________________________________________________________ 
Find your next car at http://autos.yahoo.ca


More information about the freebsd-questions mailing list