Это перечисление команд, которое можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
enum - seq- и jot-подобный перечислитель
СИНТАКСИС
ОБЩАЯ ИНФОРМАЦИЯ
перечисление [ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ ] ЛЕВЫЙ .. СЧИТАТЬx ШАГ .. ПРАВО
SHORTCUTS
перечисление [ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ ] ЛЕВЫЙ ШАГ ПРАВО
перечисление [ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ ] ЛЕВЫЙ ПРАВО
перечисление [ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ ] ПРАВО
...
ОПИСАНИЕ
перечисление перечисляет значения (числа) из ЛЕВЫЙ в ПРАВО сложение / вычитание ШАГ каждый раз. Если
ШАГ не при условии, что значение подразумевается. Не более чем СЧИТАТЬ значения печатаются. До
при печати значения передаются через форматер. Пожалуйста, посмотри ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ для деталей о
управление форматером или ПРИМЕРЫ для случаев использования.
В дальнейшем перечисление подробности использования описаны в ИСПОЛЬЗОВАНИЕ IN ДЕТАЛИ.
ПРИМЕРЫ
ИСПОЛЬЗОВАНИЕ IN ПЕТЛИ
для i в $ (enum -e 1 20); делать
коснитесь файла _ $ {i}
сделанный
ИСПОЛЬЗОВАНИЕ Для RANDOM ЦИФРЫ
число = $ (enum --random 3 .. 10)
вместо родного Bash вроде
f () {min = $ 1; макс = 2 доллара США; echo $ ((СЛУЧАЙНОЕ * (макс - мин + 1) / 32767 + мин)); }
число = $ (f 3 10)
ПОКАЗАТЬ AN ASCII ТАБЛИЦА
enum -f '[% 3i] "% c"' 0 127
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
RANDOM РЕЖИМ
-r, --случайный
Создает случайные числа (возможно, с дубликатами) вместо монотонных последовательностей.
-i, --семя=НОМЕР
Проходить НОМЕР как инициализатор генератора случайных чисел. По умолчанию ГСЧ
инициализируется текущим временем и идентификатором процесса запущенного экземпляра перечисление.
ФОРМАТИРОВАНИЕ
-b, --тупой=ТЕКСТ
Заменяет выходной формат на ТЕКСТ без интерполяции заполнителей. Например,
перечисление -b "фу % 10 " 3x трижды выводит строку «foo% 10».
-c, --символы
Заменяет формат вывода на% c, создавая символы. Например, перечисление -c 65 67
производит буквы «А», «В» и «С».
-e, - равной ширины
Выровняйте ширину, добавив начальные нули. ПРИМЕЧАНИЕ: В случае смешанного негатива и
неотрицательные числа (например, с перечисление -e - -10 1) неотрицательные значения компенсируют
из-за отсутствия ведущего минуса с лишним нулем иметь одинаковую ширину.
-f, --формат=ФОРМАТ
Заменяет формат вывода по умолчанию на ФОРМАТ. Для получения подробной информации о допустимых форматах, пожалуйста,
посмотреть Printf(3).
ФОРМАТ подлежит обработке управляющих последовательностей C (например, "\ n" означает новую строку). Если
ФОРМАТ не содержит заполнителей, перечисление напечатает ФОРМАТ неоднократно. В
напротив, jot вместо этого добавила бы значение числа. Чтобы цифры появлялись
в конце с перечисление, отрегулируйте ФОРМАТ соответственно.
-l, --линия
Ярлык для "-s ' '"что означает наличие пробела вместо новой строки в качестве разделителя.
-n, --пропустить новую строку
Пропускает завершающую строку (по умолчанию перевод строки) из вывода, т.е. это ярлык
к "-t ''".
-p, --точность=СЧИТАТЬ
Отменяет автоматический выбор точности печати СЧИТАТЬ десятичные разряды, например "0.100"
для СЧИТАТЬ = 3. По умолчанию количество печатаемых цифр вычисляется из
предоставленные аргументы и (заданный или вычисленный) размер шага.
-s, --разделитель=ТЕКСТ
Заменяет разделитель, который печатается между значениями. По умолчанию значения равны
разделены новой строкой. ТЕКСТ подлежит обработке управляющих последовательностей C (например,
"\ n" делает новую строку).
-t, - терминатор=ТЕКСТ
Заменяет терминатор, который печатается в самом конце. По умолчанию - это новая строка. ТЕКСТ
подлежит обработке управляющих последовательностей C (например, "\ n" означает новую строку).
-w, --слово=ФОРМАТ
Псевдоним для --format для совместимости с jot. Для GNU seq -w вещества
- равной шириныСм. -e.
-z, --нуль, --нулевой
Печатайте нулевые байты в качестве разделителя, а не новую строку.
ДРУГИЕ
-h, --Помогите
Выводит информацию об использовании и завершает работу с кодом 0 (успех).
-V, --версия
Отображает информацию о версии и завершает работу с кодом 0 (успех).
ИСПОЛЬЗОВАНИЕ IN ДЕТАЛИ
АРГУМЕНТЫ
Логика перечислениеПараметры командной строки:
перечисление [ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ ] ЛЕВЫЙ .. СЧИТАТЬx ШАГ .. ПРАВО
Здесь задействованы четыре аргумента:
· ЛЕВЫЙ, значение для начала перечисления
· СЧИТАТЬ, (максимальное) количество значений для получения
· ШАГ, разрыв от одного значения к другому
· ПРАВО, значение, при котором перебор прекращается (в некоторых случаях раньше)
Не все четыре аргумента необходимы, хотя можно указать все четыре. Для списка
все допустимые комбинации см. ДЕЙСТВУЕТ КОМБИНАЦИИ ниже. Подробная информация о выводе значений по умолчанию
адресовано в ВЫВОД OF ПО УМОЛЧАНИЮ.
ДЕЙСТВУЕТ КОМБИНАЦИИ
С четырьмя аргументами:
· перечисление ЛЕВЫЙ .. СЧИТАТЬx ШАГ .. ПРАВО
С тремя аргументами:
· перечисление ЛЕВЫЙ СЧИТАТЬx ПРАВО
· перечисление ЛЕВЫЙ .. СЧИТАТЬx ШАГ ..
· перечисление .. СЧИТАТЬx ШАГ .. ПРАВО
· перечисление ЛЕВЫЙ .. СЧИТАТЬx .. ПРАВО
· перечисление ЛЕВЫЙ .. ШАГ .. ПРАВО
· перечисление ЛЕВЫЙ ШАГ ПРАВО (для совместимости с GNU seq)
С двумя аргументами:
· перечисление .. СЧИТАТЬx ШАГ ..
· перечисление .. СЧИТАТЬx .. ПРАВО
· перечисление СЧИТАТЬx .. ПРАВО
· перечисление .. ШАГ .. ПРАВО
· перечисление ЛЕВЫЙ .. СЧИТАТЬx ..
· перечисление ЛЕВЫЙ .. ШАГ ..
· перечисление ЛЕВЫЙ .. ПРАВО
· перечисление ЛЕВЫЙ ПРАВО (для совместимости с GNU seq)
С одним аргументом:
· перечисление .. ШАГ ..
· перечисление .. СЧИТАТЬx ..
· перечисление .. ПРАВО
· перечисление ПРАВО (для совместимости с GNU seq)
· перечисление ЛЕВЫЙ ..
· перечисление СЧИТАТЬx
Если аргумент меньше трех, применяются значения по умолчанию. Подробности описаны в ВЫВОД OF
ПО УМОЛЧАНИЮ внизу.
Технически возможно больше вариантов использования. Например, СЧИТАТЬx ШАГ .. ПРАВО is
однозначно, поскольку порядок аргументов фиксирован. Тем не менее, "enum 3x 4 .. 10" очень похоже на
«3 значения от 4 до 10», тогда как на самом деле это будет означать «3 значения до 10 с шагом
4 ". Чтобы пользовательский интерфейс enum оставался максимально интуитивно понятным, в случаях, когда
приводить к недоразумениям не реализованы.
ВЫВОД OF ПО УМОЛЧАНИЮ
АВТОМАТИЧЕСКИЙ ВЫБОР OF ТОЧНОСТЬ
перечисление различает «2», «2.0», «2.00» и так далее:
# перечисление 1 2
1
2
# перечисление 1 2.0
1.0
1.1
[..]
1.9
2.0
Кроме того, если производный шаг имеет больше десятичных знаков, чем указанные значения для ЛЕВЫЙ
и ПРАВО, точность вывода будет увеличена до значения шага:
# перечисление 1 .. 3x .. 2
1.0
1.5
2.0
Однако указанная точность всегда имеет приоритет:
# перечисление -p 2 1 .. 3x .. 2
1.00
1.50
2.00
АРГУМЕНТ ПО УМОЛЧАНИЮ
В общем, необходимы три аргумента; любые три подразумевают четвертый. Это уравнение
объединяет их:
ЛЕВЫЙ + (СЧИТАТЬ - 1) * ШАГ = ПРАВО
Если вы укажете менее трех из них (см. ДЕЙСТВУЕТ КОМБИНАЦИИ), неуказанные
являются производными или устанавливаются по умолчанию:
· ЛЕВЫЙ по умолчанию 1 (если ШАГ и ПРАВО указаны, см. ВЫВОД OF ЛЕВЫЙ
ниже)
· СЧИТАТЬ является бесконечностью, если она не может быть получена из трех других значений.
· ШАГ по умолчанию 1, если он не может быть получен.
· ПРАВО равно +/- бесконечность, если только его нельзя получить из трех других значений.
Очевидно, если СЧИТАТЬ установлен на ноль (0x), enum ничего не выведет, независимо от
другие аргументы.
ВЫВОД OF ЛЕВЫЙ
В общем, ЛЕВЫЙ по умолчанию 1:
# перечисление .. 3
1
2
3
If ШАГ и ПРАВО дано, он выводится как
ЛЕВЫЙ = ПРАВО - ШАГ * пол(ПРАВО / ШАГ)
# перечисление .. 4 .. 10
2
6
10
Если в дополнение к ШАГ и ПРАВО, СЧИТАТЬ дается, он выводится как:
ЛЕВЫЙ = ПРАВО - (СЧИТАТЬ - 1) * ШАГ
# перечисление .. 2x 4 .. 10
6
10
ПОКОЛЕНИЕ OF ЦЕННОСТИ:
Когда запрашивается настраиваемый шаг, значения создаются следующим образом:
значение [0] = LEFT + 0 * STEP
значение [1] = LEFT + 1 * STEP
..
значение [i] = LEFT + i * STEP
В противном случае, чтобы избежать неточного суммирования, значения производятся следующим образом:
значение [0] = LEFT + (RIGHT - LEFT) / (COUNT - 1) * 0
значение [1] = LEFT + (RIGHT - LEFT) / (COUNT - 1) * 1
..
значение [i] = LEFT + (RIGHT - LEFT) / (COUNT - 1) * i
Производство останавливается, когда либо СЧИТАТЬ ценности были произведены или ПРАВО Был достигнут,
в зависимости от того, что ударит первым. Когда все четыре значения даны в идеальном соответствии, они попадают в одно и то же
времени.
RANDOM РЕЖИМ
В основном случайный режим отличается в следующих отношениях:
· Полученные значения случайны.
· Аргумент СЧИТАТЬ по умолчанию 1 (один).
· Аргумент ЛЕВЫЙ (всегда!) по умолчанию 1 (один).
· Аргумент ПРАВО требуется: случайное число не смешивается с бесконечностью.
В этом разделе подробно рассматриваются эти различия.
СЧИТАТЬ ПО УМОЛЧАНИЮ К 1 (ОДИН)
В случайном режиме по умолчанию создается только одно значение:
# перечисление 1 4
1
2
3
4
# перечисление -r 1 4
3
Указав СЧИТАТЬ вы можете создавать больше значений за раз:
# перечисление -r 1 .. 3x .. 4
2
1
3
ЛЕВЫЙ ВСЕГДА ПО УМОЛЧАНИЮ К 1 (ОДИН)
Когда вам нужно увеличить числа до определенного максимума (скажем, 10), каждое из которых разделено знаком
определенный шаг (скажем, 4) вы можете позволить перечисление рассчитаем для вас необходимое начальное значение:
# перечисление .. 4 .. 10
2
6
10
В случайном режиме ЛЕВЫЙ никогда не вычисляется и по умолчанию 1 (один):
# перечисление -r .. 5x 4 .. 10
1
1
9
1
5
RANDOM ДЕЛАЕТ НЕ MIX INFINITY
В общем, перечисление поддерживает бег к бесконечности:
# перечисление 1 .. 2.0 ..
1.0
3.0
5.0
[..]
Однако в случайном режиме перечисление теперь будет выдавать случайные числа от 1 до бесконечности (или большой
номер как FLT_MAX от ), против которого мы отказались.
ИСТОРИЯ
перечисление представляет собой слияние GNU seq и jot по функциям. По сути, оба инструмента распечатывают последовательности
номеров. GNU seq имеет чистый интерфейс, но очень ограниченную функциональность. с другой стороны
hand предлагает более продвинутые функции, такие как создание случайных чисел, за счет довольно
недружелюбный интерфейс.
В перечисление мы стараемся предложить инструмент с силой краткости и удобным, легко запоминающимся
интерфейс. перечисление под лицензией BSD и написано на C89 для максимальной
портативность.
В следующих разделах подробно рассматриваются различия.
СРАВНЕНИЕ К JOT
. перечисление вместо jot предлагает два основных преимущества:
· Улучшенное удобство использования и
· Единообразное поведение в разных дистрибутивах и операционных системах.
По состоянию на 2010, реализации jot по-прежнему незначительно отличаются между DragonFlyBSD, FreeBSD,
MirOS BSD, NetBSD, OpenBSD и OS X. Например, команда йота - 0 5 производит
· 6 целых чисел от 0 до 5 во FreeBSD и OS X,
0 1 2 3 4 5
· 100 целых чисел от 0 до 99 в NetBSD и
0 1 2 [..] 97 98 99
· 100 целых чисел от 0 до 5 (с последовательными дубликатами) на DragonFlyBSD, MirOS BSD и
OpenBSD.
0 0 0 0 0 0 0 0 0 0 1 1 [..] 4 4 5 5 5 5 5 5 5 5 5 5
По сути, полный набор функций jot плюс несколько улучшений содержится в перечисление. Имена
параметров были сохранены для повышения совместимости, например -p 2 Работает с перечисление as
это делает с jot:
# Джот -p 2 3
1.00
2.00
3.00
# перечисление -p 2 3
1.00
2.00
3.00
См. ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ выше для получения дополнительной информации.
ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ И ОСОБЕННОСТИ
Дополнительные функции, которые перечисление предложения over jot включают в себя:
ЕЩЁ ПАМЯТНЫЙ КОМАНДА ЛИНИЯ ИСПОЛЬЗОВАНИЕ
Чтобы получить 3 случайных числа от 1 до 10 (включительно), вы должны запустить
йота -r 3 1 10
с jot. Мы находим эти альтернативные вызовы перечисление более интуитивно понятный:
перечисление -r 1 .. 3x .. 10
перечислимый тип -r 1 3x 10
CUSTOM Постановление OF RANDOM
В перечисление вы можете указать, что возможные значения для случайного выбора имеют
конкретный интервал. Эти два случая иллюстрируют разницу между разницей в 2 и
3:
# enum -r 4 .. 100x 2 .. 10 | сортировать -у -н
4
6
8
10
# enum -r 4 .. 100x 3 .. 10 | сортировать -у -н
4
7
10
ПОДДЕРЖКA Для НЕСКОЛЬКО МЕСТОПОЛОЖЕНИЯ IN ФОРМАТ НИТИ
jot на DragonFlyBSD, FreeBSD, MirOS BSD, OpenBSD и OS X:
# jot -w% г% г 3
jot: слишком много конверсий
запись на NetBSD:
# jot -w% г% г 3
jot: неизвестный или недопустимый формат `% g% g '
перечисление на любой платформе:
# enum -f% g% g 3
11
22
33
ПОДДЕРЖКA Для УХОД ПОСЛЕДОВАТЕЛЬНОСТИ
Ни одна из протестированных нами реализаций jot (DragonFlyBSD, FreeBSD, MirOS BSD, NetBSD,
OpenBSD и OS X) поддерживает escape-последовательности, например "\ n", в ФОРМАТ:
# jot -w '% g \ x41' 1
1 \ x41
перечисление может правильно отменить экранирование "\ x41":
# перечисление -w '% g \ x41' 1
1A
Кстати, «\ x25» производит буквальное «%»; он не делает заполнитель:
# перечисление -w '% g \ x25g' 1
1% г
NULL, БАЙТОВ AS РАЗДЕЛИТЕЛЬ
При использовании строк формата, содержащих пробелы, вы можете столкнуться с проблемами в таких контекстах, как
для циклов или xargs: пробелы рассматриваются как разделители, которые разбивают ваши строки в
куски:
# enum -f 'число овец% d' 2 | xargs -n 1 эхо
овца
номер
1
овца
номер
2
Чтобы предотвратить это, вы можете передать --нулевой как для перечисление и xargs:
# enum --null -f 'число овец% d' 2 | xargs --null -n 1 эхо
овца номер 1
овца номер 2
РАЗЛИЧИЯ
ОБРАЩЕНИЕ OF ФОРМАТЫ БЕЗ МЕСТОПОЛОЖЕНИЯ
В отличие от йота, перечисление не добавляет текущее значение, если строка форматирования
не содержит заполнителя. Поведение йота:
# jot 3 -w test_
тест_1
тест_2
тест_3
Поведение перечисление:
# перечисление -w test_ 3
тестовое задание_
тестовое задание_
тестовое задание_
Чтобы добиться вывода jot с помощью перечисление, вам следует вручную добавить заполнитель:
# enum -w test_% d 3
тест_1
тест_2
тест_3
БЕЗ НОМЕРА ЦЕННОСТИ: Для ЛЕВЫЙ И ПРАВО
перечисление не поддерживает использование символов ASCII вместо их числовых значений (например,
«А» для 65) для ЛЕВЫЙ и ПРАВО. С помощью jot вы можете:
# йот 3 А
65
66
67
Непоследовательно,
# йот 3 0
0
1
2
jot не интерпретирует "0" как символ ASCII с кодом 48. Мы не намерены
дублирования этого микса на данный момент.
СРАВНЕНИЕ К GNU SEQ
В основном, перечислениеиспользование обратно совместимо с GNU seq.
ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ И ОСОБЕННОСТИ
Дополнительные функции перечисление предложения по GNU seq включают:
RANDOM НОМЕР РЕЖИМ
перечисление поддерживает вывод ограниченных случайных чисел, например
перечисление -r 4 .. 3x 2.0 .. 11
производит три (возможно, повторяющиеся) случайные числа из набора {4.0, 6.0, 8.0, 10.0}.
ПОДДЕРЖКA Для ОБРАТНЫЙ ЗАКАЗ
В отличие от GNU seq, перечисление поддерживает перечисление убывающих значений:
# последовательность 3 1
# перечисление 3 1
3
2
1
ПОДДЕРЖКA Для НЕСКОЛЬКО МЕСТОПОЛОЖЕНИЯ IN ФОРМАТ НИТИ
# seq -f% г% г 3
seq: формат `% g% g 'содержит слишком много директив%
# enum -f% g% g 3
11
22
33
ПОДДЕРЖКA Для УХОД ПОСЛЕДОВАТЕЛЬНОСТИ
GNU seq не поддерживает escape-последовательности, например "\ n", в ФОРМАТ:
# seq -f '% g \ x41' 1
1 \ x41
Напротив, некоторые другие реализации seq делают. Эти три поведения
можно наблюдать (по состоянию на 2010):
seq Plan 9, 9base и GNU seq:
# seq -f '% g \ x41' 3
1 \ x41
2 \ x41
3 \ x41
seq во FreeBSD и NetBSD:
# seq -f '% g \ x41' 1
1A
2A
3A
seq на DragonFlyBSD:
# seq -f '% g \ x41' 1
1A3
2A3
3A3
перечисление также отменить экранирование "\ x41" на "A":
# перечисление -f '% g \ x41' 3
1A
2A
3A
Кстати, «\ x25» производит буквальное «%»; он не делает заполнитель:
# перечисление -f '% g \ x25g' 1
1% г
ОТСУТСТВИЕ FINAL НОВАЯ ЛИНИЯ
Указав -n в качестве параметра вы можете сделать перечисление опустить завершающую новую строку.
РАЗЛИЧИЯ
GNU seq's - равной ширины кратчайший путь -w конфликтует с jot's -w слово. Мы решили сделать -e
ярлык для - равной ширины in перечисление, вместо этого.
Кроме того, хотя GNU seq находится под лицензией GPL v3 или новее, перечисление под лицензией New BSD
лицензию.
БЛАГОДАРНОСТЬ
Элиас Пиппинг, Андреас Гуншль, Джастин Б. Рай, Дэвид Превот, Камил Дудка, Майкл Бениа
АВТОРЫ
Ян Хауке Рам[электронная почта защищена]>
Себастьян Пиппинг[электронная почта защищена]>
РЕСУРСЫ
Основной веб-сайт: https://fedorahosted.org/enum/
Гитвеб: http://git.fedorahosted.org/git/? p = enum.git
Используйте enum онлайн с помощью сервисов onworks.net