Учебное пособие по команде Numfmt с примерами
Команда Numfmt: ваш незаменимый инструмент для обработки числовых значений в Linux
Команда Numfmt преобразует числа в удобочитаемый формат или из него. Он считывает числа в различных представлениях и переформатирует их в удобочитаемый формат согласно заданным параметрам. Если числа не заданы, он считывает числа из стандартного ввода. Это часть пакета GNU coreutils, поэтому не утруждайте себя его установкой. В этом кратком руководстве мы рассмотрим использование команды Numfmt с некоторыми практическими примерами в Linux.
Примеры команд Numfmt
Представьте себе комплексное число, например '1003040500'. Некоторые эксперты по математике могут легко найти удобочитаемое представление этого числа за считанные секунды. Однако для многих людей, включая меня, это немного сложно. Здесь на помощь приходит команда Numfmt.
Вот несколько примеров команд, демонстрирующих использование команды numfmt в Linux.
1. Преобразование чисел в удобочитаемый формат:
Запустите следующую команду, чтобы преобразовать данные в удобочитаемую форму.
numfmt --to=si 1003040500
1.1G
Давайте возьмем действительно длинное и более сложное число, чем предыдущее. Как насчет «10090008000700060005»? Немного сложно, правда? Да. Но команда Numfmt мгновенно отобразит удобочитаемый формат этого числа.
numfmt --to=si 10090008000700060005
11E
Здесь si относится к Международной системе единиц (сокращенно СИ от systeme Internationale , французской версии названия). ).
Итак, если вы используете si, команда numfmt автоматически масштабирует числа в соответствии со стандартом Международной системы единиц (СИ).
Numfmt также использует следующие параметры единиц измерения.
- iec и iec-i — числа автоматически масштабируются в соответствии со стандартом Международной электротехнической комиссии (IEC).
- auto - с помощью этого метода числа с 'K','M','G','< samp>T','P','E','Z','Y' Суффиксы >' интерпретируются как значения SI и числа с 'Ki', 'Mi','< samp>Gi','Ti','Pi','Ei','Zi' Суффиксы >','Yi' интерпретируются как значения IEC.
- none — автоматическое масштабирование отсутствует.
Вот еще несколько примеров для вышеуказанных вариантов.
numfmt --to=iec 10090008000700060005
8.8E
numfmt --to=iec-i 10090008000700060005
8.8Ei
Мы увидели, как преобразовать числа в удобочитаемый формат. Теперь давайте сделаем обратное. Значение. Мы собираемся преобразовать числа из удобочитаемого формата в их фактическое числовое представление.
2. Преобразование чисел из человеческого формата в числовое значение:
Чтобы преобразовать числа из формата SI (Международная система единиц) в эквивалентное числовое значение, запустите:
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
Как я уже упоминал, при использовании «авто» числа с 'K','M','G','T','P','E','Z','Y Суффиксы ' интерпретируются как значения SI и числа с 'Ki', 'Mi','Ги','Ти','Пи','Эй','Зи Суффиксы ','Yi' интерпретируются как значения IEC.
Команду Numfmt также можно использовать в сочетании с другими командами. Взгляните на следующие примеры.
3. Форматирование числа с десятичной точностью:
echo "12345678.12345678" | numfmt --format "%.2f"
Эта команда форматирует число «12345678.12345678» с десятичной точностью до двух, в результате чего выводится «12 345 678,12».
4. Преобразование двоичных чисел в десятичные:
echo "101010" | numfmt --from=auto --to=decimal
Эта команда преобразует двоичное число «101010» в его десятичный эквивалент, в результате чего на выходе получается «42».
5. Форматирование файлов большого размера в удобочитаемом формате:
ls -l | awk '{print $5}' | numfmt --to=iec --suffix=B
Эта команда извлекает размеры файлов из выходных данных команды «ls -l
», а затем использует numfmt для их форматирования в удобочитаемом формате с использованием единиц измерения IEC (например, килобайтов, мегабайтов). Опция «--suffix=B
» добавляет суффикс «B» для обозначения байтов.
6. Преобразование секунд в минуты:
echo "180" | numfmt --from=auto --to=minutes
Эта команда преобразует значение «180», представляющее секунды, в минуты, в результате чего на выходе получается «3».
7. Форматирование и суммирование числовых значений из файла:
cat numbers.txt | numfmt --field=2 --format="%'.2f" --sum
Предполагая, что файл «numbers.txt
» содержит несколько строк с двумя столбцами, эта команда форматирует значения во втором столбце с помощью запятой в качестве разделителя тысяч и десятичной точности до двух. Опция «--sum
» вычисляет и отображает сумму этих значений.
8. Преобразуйте значения, выраженные в формате SI, в их числовые эквиваленты:
echo 1G | numfmt --from=si
1000000000
Эта команда позволяет конвертировать значения, выраженные в формате SI, например «1G», представляющий 1 гигабайт, в их числовые эквиваленты с помощью утилиты «numfmt».
9. Преобразуйте значения, выраженные в формате IEC, в их числовые эквиваленты:
echo 1G | numfmt --from=iec
1073741824
Эта команда позволяет конвертировать значения, выраженные в формате IEC, например «1G», представляющий 1 гибибайт, в их числовые эквиваленты с помощью утилиты «numfmt».
10. Отображение информации о дисковом пространстве в удобочитаемых единицах СИ:
df -B1 | numfmt --header --field 2-4 --to=si
Эта команда позволяет отображать информацию о дисковом пространстве с помощью команды df
и преобразовывать размеры в удобочитаемые единицы СИ с помощью утилиты numfmt.
11. Отобразите размеры файлов в удобочитаемом формате, используя единицы СИ:
ls -l | numfmt --header --field 5 --to=si
Эта команда позволяет вам вывести список файлов и каталогов с указанием их размеров в удобочитаемом формате с помощью команды ls
и утилиты numfmt.
Внимание! Обратите внимание, что команды ls
и df
уже содержат "--human-readable
» для отображения результатов в удобочитаемой форме. Вышеприведенные примеры приведены только для демонстрационных целей.
Вы также можете настроить вывод, используя параметры «--format
» или «--padding
».
12. Дополните до 5 символов, выровняв их по правому краю с помощью параметра «--format
»:
du -s * | numfmt --to=si --format="%5f"
13. Дополните до 5 символов, выровняв их по левому краю, используя параметр «--format
»:
du -s * | numfmt --to=si --format="%-5f"
14. Дополнение до 5 символов с выравниванием по правому краю с помощью параметра «--padding
»:
du -s * | numfmt --to=si --padding=5
15. Дополните до 5 символов, выровняв их по левому краю, используя параметр «--padding
»:
du -s * | numfmt --to=si --padding=-5
Дополнительные параметры и использование см. на страницах руководства.
man numfmt
Эти примеры иллюстрируют различные сценарии, в которых команда numfmt может быть полезна для форматирования, преобразования и обработки числовых значений в Linux. Не стесняйтесь адаптировать и изменять эти команды в соответствии с вашими конкретными потребностями.
Помните, что конкретное использование и параметры команды numfmt могут незначительно отличаться в зависимости от вашего дистрибутива Linux и установленной версии coreutils.
Часто задаваемые вопросы
Вот FAQ (часто задаваемые вопросы) по команде numfmt:
1. Что такое команда numfmt?
Команда numfmt — это утилита в Linux, используемая для форматирования и преобразования числовых значений в различные форматы.
2. Как использовать numfmt для форматирования чисел?
Вы можете использовать numfmt для форматирования чисел, указав такие параметры, как десятичная точность, разделители тысяч и заполнение.
3. Может ли numfmt преобразовывать числа между разными единицами измерения?
Да, numfmt может преобразовывать числа в такие единицы измерения, как байты, килобайты, мегабайты и т. д., что делает его полезным для обработки размеров данных.
4. Может ли numfmt обрабатывать числа в экспоненциальном представлении?
Да, numfmt может обрабатывать числа в экспоненциальном представлении и форматировать их в соответствии с указанными параметрами.
5. Можно ли использовать numfmt для пакетной обработки или создания сценариев?
Да, numfmt можно использовать в сценариях или для пакетной обработки, предоставляя ввод через аргументы командной строки или перенаправление файла.
6. Поддерживает ли numfmt пользовательские параметры форматирования?
Да, numfmt предоставляет различные параметры для настройки форматирования, такие как указание формата, заполнения и ширины выходного поля.
7. Какие дистрибутивы Linux включают команду numfmt?
Команда numfmt обычно входит в состав coreutils, который устанавливается по умолчанию в большинстве дистрибутивов Linux.
8. Может ли numfmt выполнять вычисления или арифметические операции с числами?
Нет, numfmt в первую очередь ориентирован на форматирование и преобразование числовых значений, а не на выполнение вычислений.
9. Как использовать numfmt для форматирования чисел в файле CSV?
Вы можете передать выходные данные команды, которая генерирует данные CSV, в numfmt для форматирования определенных столбцов или полей.
10. Где я могу найти дополнительную информацию о numfmt и его использовании?
Вы можете обратиться к странице руководства numfmt, набрав «man numfmt
» в терминале, или вы можете получить доступ к онлайн-ресурсам и учебным пособиям для получения подробных примеров и инструкций по использованию.
Заключение
В заключение отметим, что команда numfmt в Linux — это универсальная утилита, упрощающая форматирование и преобразование числовых значений. Он обеспечивает удобный способ манипулирования числами, преобразования единиц измерения и настройки представления данных.
Если вам нужно отформатировать числа в определенной локали, преобразовать размеры файлов или применить собственные параметры форматирования, numfmt — это мощный инструмент в вашем распоряжении.
Ресурс:
- Руководство по numfmt