Быстрая навигация
Seq — это куда больше, чем просто генератор чисел. Для меня эта команда незаменима: создаю тестовые файлы, кручу циклы, быстро сканирую порты и даже делаю расчёты прямо в консоли — всё автоматизируется за пару строк. Держите мои самые любимые фишки для seq из реальной жизни!
Генерация числовых последовательностей — проще не бывает
Главная функция seq — печатает числа по порядку. Достаточно задать только последнее число, и команда выведет последовательность от 1 до указанного числа. Вот так это выглядит:
Такой простой вызов даст числа от 1 до 5. Но этот инструмент раскрывается по-настоящему, когда ты указываешь старт, шаг, формат или отправляешь результат другим командам.
Допустим, чтобы начать с другого числа, просто пиши его первым параметром, а конец — вторым.
Теперь получаешь числа от 3 до 7 (3, 4, 5, 6, 7).
А если нужны только нечётные или вообще свой шаг? Просто добавь нужный интервал между началом и концом. Например, чтобы вывести нечётные от 1 до 10, шаг ставим 2:
В ответ — 1, 3, 5, 7, 9.
Можно и в обратном порядке — для этого просто шаг делаем отрицательным:
В итоге получаешь последовательность от 10 до 1 с шагом -1.
Генерируем числа с плавающей точкой
Seq отлично умеет работать не только с целыми, но и с десятичными числами. Это иногда решает целую научную или инженерную задачу.
Например, прогнать значения от 0.5 до 2.0 с шагом 0.3 можно так:
Таким образом получишь список с нужным шагом и точностью до десятых.
Свой разделитель между числами? Легко!
По умолчанию seq ставит числа каждое с новой строки. Но если добавить флаг -s (separator), можно выбрать любой разделитель! Допустим, выведем числа от 1 до 5 через запятую и пробел:
Хочешь, чтобы между числами был пробел? Перекинь результат в xargs: всё будет в одну строчку, числа отделятся пробелами. xargs берёт числа из стандартного ввода и превращает в аргументы для другой команды — обычно этой командой становится echo.
Красиво форматируем числа
Допустим, нужны числа с ведущими нулями — от 01 до 10, например. На выручку приходит ключ -f с шаблоном для форматирования:
Шаблон %g — это просто число, а 02 — значит два знака, ведущие нули добавляются сами.
Если время поджимает — врубаем флаг -w (width): все числа будут одинаковой длины и ровненько выровнены.
В итоге получится, например, 001, 002, ..., 099, 100 — все одной длины.
Это отличный способ сделать имена файлов с лидирующими нулями — чтобы они всегда правильно сортировались. В связке с touch и xargs можно сразу нагенерить кучу пустых файлов. Нужно, скажем, 5 файлов в стиле text_01.jpg, text_02.jpg и т. д.:
После выполнения получишь аккуратный список файлов с правильной сортировкой номеров. Можно даже делать файлы с датами в имени:
Такой цикл создаёт по файлу на каждый день марта 2025 года.
Молниеносное создание тестовых файлов с содержимым
Seq пригодится не только для номеров, но и для генерации текстовых файлов с тестовыми данными. Просто объединяй seq с циклами и перенаправлением вывода.
К примеру, если нужно быстро получить 5 файлов с уникальным содержимым — вот простое решение:
Советую — seq -w 1 5 — для нумерации с нулями и красивой сортировки.
Нужен вариант посложнее? Нет ничего проще! Так можно делать 5 файлов, где каждый содержит по 100 уникальных строк:
Внешний цикл подбирает имена файлов, внутренний — наполняет их строками. Всё наглядно и управляется парой переменных!
Как быстро повторить команду нужное число раз
Иногда надо повторить команду много раз подряд, а сами числа не важны. Например, тестирую пинг или гоняю багрепорт — seq позволит избежать длинных for-циклов.
Например, стресс-тест сайта или любого сервиса делается секундами через seq и xargs:
В этом примере сайт будет опрошен 10 раз — удобно для проверки на выносливость.
Seq прекрасно работает с for-циклами. Чтобы пять раз напечатать «Hello, World!», используй такой код:
Терминал поприветствует мир пять раз подряд.
Метки времени и интервалы в одно движение
Это мой любимый трюк — быстро создавать временные метки через seq. Очень выручает при тестировании логов или генерации «искусственных» событий: это могут быть минуты, часы, дни...
Например, для отчёта понадобится список каждых 15 минут за час:
И получаем: 00, 15, 30, 45.
Можно выдавать и метки на ближайшие 10 минут вперёд:
Весь список появится одномоментно, задержек ждать не придётся. Для имитации «реального времени» — просто добавь sleep 60 внутри цикла.
Нужно получить формат ЧЧ:ММ для полного часа? Пожалуйста!
Результат: 14:00, 14:01, и так до 14:59 — супер для любой хронологии прямо с консоли.
Мгновенный скан портов — must-have для сисадмина и девелопера
Админ? Пишешь сервисы? Seq поможет моментально узнать, какие порты на машине свободны. Надо найти свободный порт для запуска — вот как это делается:
Seq генерирует список портов и через nc проверяет их доступность.
Поясняю на пальцах: права и нужные утилиты — само собой. Все такие проверки — исключительно на своих серверах или с разрешения!
Если nc не установлена, пользуйся встроенным bash — и не понадобится ничего лишнего:
Для серьёзного аудита есть nmap, но для быстрой разработки seq — просто находка!
Легко перебираем диапазоны в скриптах
Конечно, в Bash есть циклы, но с seq код получается чище и понятнее, особенно если диапазоны плавающие или нестандартные. Просто задаём START и END — и поехали:
Код становится супер-управляемым: поменял только переменные — работает для любых диапазонов.
Можно применить, например, для сканирования пачки папок по номерам или создания архивов за каждый день месяца.
Вот вариант: одной командой создать 31 архив с датой в имени (backup_2025-09-01.tar.gz и т.д.), и порядок файлов всегда будет правильным.
Режем огромные файлы на части просто и без боли
Нужно поделить большой файл на части? С помощью seq удобно рассчитать диапазоны строк. Да, есть split, но seq даёт больше контроля над именами файлов и размерами кусков.
Например, режем bigfile по 100 строк:
Сначала определяем общее количество строк, потом через seq получаем номера начала каждого фрагмента (1, 101, 201 и так далее). sed вырезает нужные блоки и складывает в отдельные файлы.
Мощная математика в командной строке — за секунды!
Seq отлично дружит с калькуляторами вроде bc и awk. Генерируем числа — и тут же считаем всё, что нужно.
Хочешь сложить числа от 1 до 100?
Числа идут через плюс, результат сразу летит в bc, который и делает все подсчёты.
Точно так же работает и через awk — подсчёт в одну команду:
Я часто вот так на лету анализирую данные — сначала генерация, потом форматирование и сразу подсчёт. Seq — это не просто команда, а читерский арсенал для автоматизации любого рутины прямо в терминале!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru