Как найти размер удаленного каталога http/https (не рекурсивно), используя заданный регеxp из командной строки

В bash, просто !636 будет нормально.

1
03.05.2019, 15:41
2 ответа

Используйте numfmt --from=...для преобразования размеров файлов в байты, тогда вы сможете легко суммировать их:

curl -s $URL | html2text -width $COLUMNS \
| awk '$3~/\.mp4/{print $6}' \
| LC_ALL=C numfmt --from=iec \
| paste -sd+ | bc

58044134197
  • Добавьте | numfmt --to=iec, чтобы снова получить удобочитаемые размеры, а также, если хотите, --format '%.1f', чтобы получить десятичные разряды.
  • Используйте --from=siдля 1000 -размеров файлов.
  • В зависимости от ваших локальных настроек вы можете опустить LC_ALL=C, но я получаю сообщение об ошибке с 1.1G.
1
27.01.2020, 23:30

Попробуйте это,

cat file | awk '{($NF ~ /G/)?$NF=$NF*1024:$NF=$NF*1} {sum += $NF} END {print sum}'
  • умножьте последнее поле на 1024, если оно имеетG
  • иначе умножьте на 1 (просто чтобы удалить M, будьте осторожны, если у вас есть K или что-то еще)
  • Наконец, сумма всех значений в последнем поле.

может быть, вы можете заменить NF на 6, поскольку вы упомянули его как 6-е поле вместо последнего

1
27.01.2020, 23:30

Теги

Похожие вопросы