Solved

Sum Size Column From ls -la Command

Posted on 2011-09-19
10
457 Views
Last Modified: 2012-05-12
Partial listing of ls -la command.  I need a simple script that will sum up the size column .


-rw-r-----   1 oracle   oracle   31652864 Sep 19 13:21 1_124188_665266938.arc
-rw-r-----   1 oracle   oracle   44494848 Sep 19 13:36 1_124189_665266938.arc
-rw-r-----   1 oracle   oracle   32430080 Sep 19 13:51 1_124190_665266938.arc
-rw-r-----   1 oracle   oracle   92637184 Sep 19 14:06 1_124191_665266938.arc
-rw-r-----   1 oracle   oracle   92578304 Sep 19 14:13 1_124192_665266938.arc
-rw-r-----   1 oracle   oracle   60880384 Sep 19 14:28 1_124193_665266938.arc
-rw-r-----   1 oracle   oracle   37847040 Sep 19 14:43 1_124194_665266938.arc
-rw-r-----   1 oracle   oracle   46640640 Sep 19 14:58 1_124195_665266938.arc
-rw-r-----   1 oracle   oracle   73367552 Sep 19 15:13 1_124196_665266938.arc
-rw-r-----   1 oracle   oracle   95905280 Sep 19 15:22 1_124197_665266938.arc
0
Comment
Question by:xoxomos
  • 4
  • 2
  • 2
  • +1
10 Comments
 
LVL 12

Expert Comment

by:hfraser
Comment Utility
If you're open to another command, "du -bc *" will produce a grand total. The "C" generates the total, and the "b" converts it from blocks to actual number of bytes similar to what the "ls -l" command produces.
0
 

Author Comment

by:xoxomos
Comment Utility
Yes that's true.  Actually it was ls -la > somefile.  Once into somefile i eliminated some of the rows and I wanted to get the sum of that.  
Another alternative would be if i could do something like the du but only include those with the latest date(today)???
0
 
LVL 4

Assisted Solution

by:sakman
sakman earned 250 total points
Comment Utility
There are many ways to go about this, including using the "du" command as hfraser mentioned.

If you want to continue putting your file listing into a file to process, you could do something like this:
$ ls -l /some/dir | grep 'Sep 19' >somefile
$ total=0
$ for size in `cat somefile | awk '{print $5}'`
> do
> total=`expr $total + $size`
> done
$ echo $total
608434176
0
 
LVL 12

Accepted Solution

by:
hfraser earned 250 total points
Comment Utility
A simple awk script will tdo it for you.

{
  sum = sum + $5}
END {
 print sum
}

Just use cat filename | awk script.awk
0
 

Author Comment

by:xoxomos
Comment Utility
Mil gracias everyone!!!
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 48

Expert Comment

by:Tintin
Comment Utility
Much easer and quicker to do
ls -la | awk '{t+=$5} END {print t}'

Open in new window

0
 

Author Comment

by:xoxomos
Comment Utility
sakman was most complete because this solution included ability to select a specific date :-)
Thanks
0
 
LVL 4

Expert Comment

by:sakman
Comment Utility
IMHO, Tintin's solution is the most elegant - just add a grep for the date (depending on the date format of your system):

ls -la | grep 'Sep 19'  | awk '{t+=$5} END {print t}'

Open in new window

0
 

Author Comment

by:xoxomos
Comment Utility
Yes.  Tintin always comes up with the most sexy solutions :-)  A bit late this time though :-(
0
 
LVL 48

Expert Comment

by:Tintin
Comment Utility
With one less process :-)
ls -la | awk '/Sep 19/ {t+=$5} END {print t}'

Open in new window

0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Introduction Regular patching is part of a system administrator's tasks. However, many patches require that the system be in single-user mode before they can be installed. A cluster patch in particular can take quite a while to apply if the machine…
FreeBSD on EC2 FreeBSD (https://www.freebsd.org) is a robust Unix-like operating system that has been around for many years. FreeBSD is available on Amazon EC2 through Amazon Machine Images (AMIs) provided by FreeBSD developer and security office…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now