LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Blogs > linux-related notes
User Name
Password

Notices


Just annotations of little "how to's", so I know I can find how to do something I've already done when I need to do it again, in case I don't remember anymore, which is not unlikely. Hopefully they can be useful to others, but I can't guarantee that it will work, or that it won't even make things worse.
Rate this Entry

Listing the average file size for all subfolders (+listing subfolders without ls or find)

Posted 08-03-2014 at 08:11 PM by the dsc
Updated 08-03-2014 at 09:04 PM by the dsc

A tiny "Frankenstein monster" one liner, adding a little bit from several sources/blogs/blog comments:

lsf | while read d ; do find ./"$d" -iname "*.*" -type f -printf "%k\n" | gawk '{sum += $1; n++;} END {print sum/n;}' |sed "s|$| -- $d|" ; done | sort -n

Where the first "command", "lsf" is actually a custom function:

Code:
lsf ()
{
for f in * ; do [ -d "$f" ] && echo $f ; done
}
I think it's a little bit better to parse than "ls -1 -d /*" or "find . -maxdepth 1 -type d". Only because it doesn't have two slashes after each folder name or "./" before. Even though the latter isn't that bad.



To get the ratios of "average of deviations above average" per deviations above average:

lsf | while read d ; do AVG="$(find ./"$d" -maxdepth 1 -iname "*.*" -type f -printf "%k\n" | gawk '{sum += $1; n++;} END {print sum/n;}' | sed 's|\..*||')k" ; devs=$(find ./"$d" -iname "*.*" -type f -maxdepth 1 -size +$AVG | wc -l) ; devsize=$(find ./"$d" -maxdepth 1 -iname "*.*" -type f -size +$AVG -printf "%k\n" | gawk '{sum += $1; n++} END {print sum/n;}' | sed 's|\..*||') ; echo "$(echo "${devsize:-1}/${devs:-1}" | bc -l) -- $AVG -$d "; done | sort -n

Can give lots of errors due to division by 0 and such things. Warning: I'm not good at math.
Posted in Uncategorized
Views 1129 Comments 0
« Prev     Main     Next »
Total Comments 0

Comments

 

  



All times are GMT -5. The time now is 11:09 PM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration