Вы должны избегать анализа выходных данныхls
. Вместо этого используйте stat
команду.
И вместо того, чтобы пытаться создать новый формат чисел, используйте команду numfmt
из coreutils.
Таким образом, вы можете использовать это:
for i in *; do printf "%s %s\n" $(stat -c %s "$i" | numfmt --to=iec-i --suffix=B --format "%.2f") "$i" done