AWK Array Script To Find File Maximum, Minimum and Total File Sizes

in Categories File-management last updated July 26, 2009
#!/bin/bash
# Written by Vivek Gite <www.cyberciti.biz>
# AWK to list total file size, minimum, maximum and other size using Arrays
# --------------------------------------------------------------------------
# Copyright (C) 2007 nixCraft project <http://www.cyberciti.biz/tips/contact-us>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# http://bash.cyberciti.biz/file-management/awk-array-script-to-find-file-maximum-minimum-and-total-file-sizes/
# -------------------------------------------------------------------------
 
dirs="$@"
 
[ $# -eq 0 ] && { echo "Usage: $0 dir1 dir2 dir N"; exit 999; }
 
for d in $dirs
do
	[ ! -d $d ] && { echo "** Error: $d is not directory"; continue; } 
 
	echo "*** Info for $d directory ***"	
	ls -Al $d | egrep -wv "^total"  |awk 'BEGIN{c=0;max=0;min=0;total=0}
 
			{arr[c]=$5;c++;total+=$5}
 
			END{
				  for (x = 0; x <= (c-1); x++){
				        if ( arr[x] > max ) max = arr[x];
  				   }
				   min=max;
				  for (x = 0; x <= (c-1); x++){
				        if ( arr[x] < min ) min = arr[x];
  				   }
			print "Max size:",max, "\nMin size:", min, "\nTotal size:", total}'
done

Share this on: