X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Ffiles%2Fsumming_dir.pl;h=d23c5b486a4797e0fe24201c87d0cd37582b07ad;hb=541783feb1e22d7cb43141640bc45e5d8f5fe8da;hp=769a8f50c78421a72faf76df378668687e86971a;hpb=f3ac07cc36393447348472b29d7b1d7585b8116b;p=feisty_meow.git diff --git a/scripts/files/summing_dir.pl b/scripts/files/summing_dir.pl index 769a8f50..d23c5b48 100644 --- a/scripts/files/summing_dir.pl +++ b/scripts/files/summing_dir.pl @@ -65,17 +65,36 @@ local($lengths) = 0; # open the file and process the lines to get file lengths. open(DIRLIST, "<$temp_file"); +# we only want to match ls -al style output lines, and only want to keep the size. +$pattern="^[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +([0-9.]+[KMG]?).*\$"; foreach $file_line () { - (local $munged = $file_line) =~ s/^[^ ]* *[^ ]* *[^ ]* *[^ ]* *([0-9]+).*$/\1/; -# print "munge=$munged\n"; - $lengths += $munged; + if ($file_line =~ /$pattern/) { + (local $munged = $file_line) =~ s/$pattern/\1/; + #print "munge=$munged\n"; + if ($munged =~ /K$/) { + chop $munged; + $munged *= 1024.0; + #print "K munged is now $munged\n"; + } + if ($munged =~ /M$/) { + chop $munged; + $munged *= 1024.0 * 1024.0; + #print "M munged is now $munged\n"; + } + if ($munged =~ /G$/) { + chop $munged; + $munged *= 1024.0 * 1024.0 * 1024.0; + #print "G munged is now $munged\n"; + } + $lengths += $munged; + } } close(DIRLIST); unlink($temp_file); # clean up. #print "lens are: $lengths\n"; -local($total)=$lengths; +local($total)=int($lengths); local($kbytes)=int($total / 102.4) / 10; local($mbytes)=int($kbytes / 102.4) / 10;