Команды Linux · 2 min read · Jan 11, 2026

Учебник по команде Linux shuf для начинающих (с примерами)

Если вы когда-либо играли в карты, вы, вероятно, знакомы с термином перетасовка. Немного сложно представить, но существует инструмент командной строки Linux, который именно это и делает с строками в файлах. В этом учебнике мы обсудим основы команды ‘shuf’, используя несколько простых для понимания примеров.

Но прежде чем мы это сделаем, стоит упомянуть, что все примеры здесь были протестированы на машине с Ubuntu 18.04 LTS.

Команда shuf в Linux

Команда shuf в Linux позволяет вам генерировать случайные перестановки. Вот её синтаксис:

shuf [OPTION]... [FILE]

А вот как страница man инструмента объясняет это:

Запишите случайную перестановку входных строк в стандартный вывод.

Следуют некоторые примеры в формате вопросов и ответов, которые должны дать вам лучшее представление о том, как работает команда shuf.

Вопрос 1. Как использовать команду shuf?

Основное использование очень простое. Просто передайте имя файла в качестве входных данных. Вот пример:

shuf test.txt

Теперь файл test.txt содержит следующие строки:

1  
2  
3  
4  
5  
6  
7  
8  
9

Но команда shuf выше выдала следующий вывод:

3  
4  
6  
5  
1  
8  
2  
7  
9

Таким образом, вы можете видеть, что строки были перемешаны.

Вопрос 2. Как ограничить количество строк в выводе?

Если вы хотите ограничить количество строк в выводе shuf, используйте параметр командной строки -n, который требует от вас передать число, представляющее максимальное количество строк, которое вы хотите в выводе.

Например:

shuf -n 3 test.txt

Вышеуказанная команда выдала следующий вывод:

6  
4  
9

Вопрос 3. Как разрешить повторение строк в выводе?

Предположим, что входной файл содержит 9 строк, но вы хотите, чтобы shuf выдал больше строк, чем это (используя параметр -n, обсужденный выше). Это можно сделать с помощью параметра -r.

-r, --repeat  
              выходные строки могут повторяться

Итак, если вы хотите, чтобы shuf выдал 25 строк в выводе, выполните следующую команду:

shuf -r -n 25 test.txt

Вот вывод, который выдала эта команда:

6  
8  
4  
5  
9  
3  
3  
1  
2  
5  
7  
5  
9  
5  
8  
5  
2  
8  
8  
7  
4  
4  
8  
5  
3

Вопрос 4. Как заставить shuf рассматривать входные аргументы как строки?

Для этого используйте параметр командной строки -e. Вот пример:

shuf -e 1 2 3 4 5 6 7 8 9

Вот вывод, который выдала эта команда:

9  
1  
7  
8  
6  
2  
3  
5  
4

Заключение

Согласен, shuf не тот инструмент, который вам нужен каждый день, но нет ничего плохого в том, чтобы узнать об этом утилите, особенно поскольку его кривая обучения не так уж и крута. Как только вы закончите практиковаться в том, что мы обсудили здесь, перейдите на страницу man инструмента, чтобы узнать о нем больше.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.