Я застрял, пытаясь понять, как суммировать ls
результат 5-го столбца с awk
. Если я прибавляю $bytesum+=...
, то программа, очевидно, ломается. Есть идеи?
bytesum=0
for i in `cat fileextensions.txt | sort | uniq`
do
ls -Rl "$folder" | grep $i | awk '{bytesum+=$5}; {print $9 " " $5}'
done
echo $bytesum
решение1
С GNU find вам понадобится всего лишь:
find . -type f -printf '%s\n' | awk '{s+=$0} END{print s+0}'
При любой находке:
find . -type f -exec stat -c '%s\n' {} \; | awk '{s+=$0} END{print s+0}'
Чтобы просто найти и получить статистику по файлам с определенным расширением в определенном каталоге («папка» — это термин Windows, в терминологии UNIX это каталог), как вы, возможно, пытаетесь сделать, нужно:
dir='whatever'
ext='pdf'
find "$dir" -type f -name "*.${ext}" -printf '%s\n'
решение2
В Баше:
for size in `du *.jpg | cut -f1`; do sum=$((sum+size)); done; echo $sum
Интегрируйте это в свой основной цикл, изменив .jpg
в моем примере на соответствующую переменную $i
в вашем скрипте.