Поиск по сайту:

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


На этой странице

  1. Команда Linux shuf
  2. Q1. Как использовать команду shuf?
  3. Вопрос 2. Как ограничить количество строк в выводе?
  4. Вопрос 3. Как разрешить повторение строк в выводе?
  5. Q4. Как заставить shuf обрабатывать входные аргументы как строки?
  6. Заключение

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

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

Команда Linux shuf

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

shuf [OPTION]... [FILE]

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

Write a random permutation of the input lines to standard output.

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

Q1. Как использовать команду 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

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

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

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

Например:

shuf -n 3 test.txt

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

6
4
9

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

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

-r, --repeat
              output lines can be repeated

Итак, если вы хотите, чтобы 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

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

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

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

Вот вывод, полученный этой командой:

9
1
7
8
6
2
3
5
4

Заключение

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