Как я могу отсортировать список, используя удобочитаемую сортировку по размеру файла, числовую сортировку, которая принимает во внимание идентификатор размера (G, M, K)? Могу ли я отсортировать " du -sh" вывод, например?
Проблема: рассмотрите проблему перечисления файлов / папок и сортировки их по размеру. Вы можете достичь этого, запустив:
du -s * | sort -n
Здесь перечислены файлы / папки, отсортированные по размеру. Однако значение печатного размера указывается в байтах (или мегабайтах, или гигабайтах, если вы выберете).
Было бы желательно иметь возможность сортировки на основе удобочитаемых значений, чтобы я мог выполнить что-то аналогичное
Изменить: вы можете проверить свои версии, используя du --versionи sort --versionесли вы используете версии GNU. Если вы используете homebrew, вам может понадобиться использовать gduи gsort.
OSX не имеет этой опции. Вы можете использовать homebrew для `brew install coreutils` (который добавляет все команды coreutils к« g »). Затем вы можете сделать `gdu -hs * | gsort -h`.
dsummersl 9 лет назад
7
Просто чтобы прояснить точку зрения @ dsummersl: `du -hs *` отлично работает на Mac OS X, но `sort -h` возвращает` sort: неверный параметр - h`. Можно также установить пакет coreutils через MacPorts, как описано [здесь] (http://tunafreedolphin.com/?p=416).
jvriesem 9 лет назад
1
Если вы просто беспокоитесь о файлах размером более 1 МБ, как вам кажется, вы можете использовать эту команду для их сортировки и использовать awk для преобразования размера в МБ:
du -s * | sort -n | awk ''
Опять же, это округляет размеры до ближайшего МБ. Вы можете изменить его, преобразовав в единицу по вашему выбору.
Это похоже на: `du -sm * | сортировать `-s` /` -g` делает размеры вывода `du` в мегабайтах / гигабайтах.
notnoop 14 лет назад
0
Для MB вы должны разделить еще на 1024. Так что это будет `int ($ 1 / (1024 * 1024))`
Pratik Khadloya 9 лет назад
0
2
Mark Crossfield
This one handles filenames with whitespace or apostrophes, and works on systems which do not support xargs -d or sort -h:
дю -ск * | сортировать -n | awk '' | пока читаешь ф; do du -sh "$ f"; сделанный
1
lukmansh
Эта команда будет сортировать по размеру в МБ
du --block-size=MiB --max-depth=1 path | sort -n
Это уже то, что пользователь делает на самом деле, он просто не привел пример с MiB, но упомянул об этом. То, что он / она ищет, это возможность сортировки при использовании флага `-h` для du.
Tonin 11 лет назад
0