выходите из привычки использовать [119885]$ALL_CAPS_VARNAMES[119886] -- в один прекрасный день вы используете "PATH" и разбиваете ваш скрипт.[119357].
Вы не должны разбирать ls, вместо этого используйте следующее:
for f in * .*; do
[ -f "$f" ] && \
printf "%s %s %s\n" "$f" $(du -h -- "$f" | cut -f1) $(md5sum -- "$f" | cut -d' ' -f1)
done
for
перебирает все файлы и каталоги в текущем каталоге.
[ -f "$f" ]
проверяет, обычный ли это файлprintf "%s %s %s\n"
печатает аргументы в нужном формате. "$f"
первый аргумент - имя файлаdu -h -- "$f" | cut -f1
второй - размер (читаемый человеком), но не имя файла, cut
вырезает все, кроме первого поляmd5sum -- "$f" | cut -d' ' -f1
третий - сумма MD5, но без имени файла.