ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Команда Numfmt с примерами для начинающих

Команда Numfmt с примерами для начинающих

Сегодня мы обсудим интересную и довольно неизвестную команду под названием «Numfmt», которая преобразует число в/из удобочитаемого формата. Она считывает числа в различных представлениях и форматирует их в удобочитаемом формате в соответствии с заданными параметрами. Если номера не дали, он считывает числа из стандартного ввода. Она является частью пакета GNU Coreutils, так что вам не нужно беспокоиться об его установки. В этом кратком руководстве мы рассмотрим использование команды Numfmt с некоторыми практическими примерами.

Команда Numfmt с примерами

Изобразите комплексное число, например «1003040500» . Здесь команды Numfmt приходит в помощь. Выполните следующую команду, чтобы преобразовать данные в читабельной форме.

$ numfmt --to=si 1003040500
1.1G

 

Придумаем некоторое очень долгое и комплексное число, по сравнению с предыдущим номером. Как насчет «10090008000700060005»? Биты трудны, не так ли? Да. Но команда Numfmt покажет удобочитаемый формат этого числа мгновенно.

$ numfmt --to=si 10090008000700060005
11E

 

Здесь si ссылается на международную систему единиц (сокращенно SI от Systeme Internationale, французский вариант названия).

Таким образом, если вы используете si, команда numfmt будет автоматически масштабировать номер в соответствии со стандартом Международной системой единиц (СИ).

Numfmt также использует следующие параметры тоже.

Вот еще несколько примеров для приведенных выше вариантов.

$ numfmt --to=iec 10090008000700060005
8.8E

 

$ numfmt --to=iec-i 10090008000700060005
8.8Ei

 

Мы уже видели, как преобразовать число в удобочитаемый формат. Теперь давайте сделаем наоборот. Т.е. мы будем преобразовывать числа из удобочитаемого формата. Для этого просто заменить «-to» с опцией «-from», как показано ниже.

$ numfmt --from=si 1G
1000000000

 

$ numfmt --from=si 1M
1000000

 

$ numfmt --from=si 1P
1000000000000000

 

Мы также можем сделать это со стандартами iec и iec-i.

$ numfmt --from=iec 1G
1073741824

 

$ numfmt --from=iec-i 1Gi
1073741824

 

$ numfmt --from=auto 1G
1000000000

 

$ numfmt --from=auto 1Gi
1073741824

 

Как я уже говорил, при использовании «auto», Суффиксы ‘K’,‘M’,‘G’,‘T’,‘P’,‘E’,‘Z’,‘Y’ интерпретируются как SI значения, и Суффиксы ‘Ki’, ‘Mi’,‘Gi’,‘Ti’,‘Pi’,‘Ei’,‘Zi’,‘Yi’  интерпретируются как IEC значений.

Команда Numfmt также может быть использована в сочетании с другими командами. Посмотрите на следующие примеры.

$ echo 1G | numfmt --from=si
1000000000

 

$ echo 1G | numfmt --from=iec
1073741824

 

$ df -B1 | numfmt --header --field 2-4 --to=si
$ ls -l | numfmt --header --field 5 --to=si

 

Пожалуйста, обратите внимание, на то что в командах ls и df уже есть «-человеческий читаемый» вариант для отображения результатов в читабельной форме. Приведенные выше примеры приведены только лишь в демонстрационных целях.

Вы можете настроить вывод с помощью вариантов «-format» или «-padding».

5 символов, выравнивание по правому краю, используя опцию «-format»:

$ du -s * | numfmt --to=si --format="%5f"

 

5 символов, выравнивание по левому краю, используя опцию «-format»:

$ du -s * | numfmt --to=si --format="%-5f"

 

5 символов, выравнивание по правому краю, используя опцию «-padding»:

$ du -s * | numfmt --to=si --padding=5

 

5 символов, выравнивание по левому краю, используя опцию «-padding»:

$ du -s * | numfmt --to=si --padding=-5

 

Для получения дополнительных возможностей и использования, смотрите man page.

$ man numfmt

 

Это все на данный момент. Оставайтесь с нами!

 

Exit mobile version