seq

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

seq
Тип команда
Разработчик AT&T Bell Laboratories
Операционные системы Unix, Unix-like, Plan 9
Первый выпуск февраль 1985; 39 лет назад (1985-02)
Аппаратная платформа Кроссплатформенная
Лицензия coreutils: GPLv3+

seq — утилита, используемая в unix-системах для генерации последовательности.

Впервые появилась в Research Unix версии 8 в 1985 году и не была адаптирована другими вариантами Unix (такими как коммерческие Unix или BSD). Позднее была перенесена в Plan 9 и оттуда была скопирована в некоторые BSD-системы, в том числе во FreeBSD. Другая версия утилиты была написана в 1994 году Ульрихом Дреппером для проекта GNU, и стала основной в дистрибутивах Linux как часть GNU Coreutils. Команда доступна в виде отдельного пакета для Microsoft Windows как часть коллекции UnxUtils.

В самом простом варианте использования — seq N — выводит на печать все целые числа от 1 до N в последовательности; эта возможность часто применялась в ранних версиях Bash для циклов, когда команда for могла перебирать только списки:

# Удалить file1..file17:
for n in `seq 17`
do
    rm "file$n"
done

Дополнительные возможности утилиты — указание начального значения, инкремента (в том числе числа с плавающей запятой), форматирования вывода. Опции в GNU seq отличаются от использованных в первом варианте утилиты, в частности, изменено название и значение опции формата (с -p на -f) и добавлена опция для управления разделителем между числами (-s, по умолчанию — новая строка).

Стала использоваться реже с распространением таких альтернатив, как expr, и с появлением в командных интерпретаторах числового перебора в циклах.

  • seq(1) — страница справки man по пользовательским командам GNU/Linux  (англ.)
  • seq(1) — страница справки man по пользовательским командам Plan 9  (англ.)
  • seq manual page from 8th Edition Unix
  • seq manual page from FreeBSD