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

Учебное пособие по команде Linux Shuf с примерами

Команда Shuf используется для генерации случайных перестановок в Linux и Unix-подобных операционных системах. Используя команду shuf, мы можем случайным образом перетасовать строки данного входного файла. Команда Shuf является частью GNU Coreutils, поэтому вам не придется беспокоиться об установке. В этом кратком уроке позвольте мне показать вам несколько примеров команды shuf.

Учебное пособие по команде Shuf с примерами

У меня есть файл с именем ostechnix.txt со следующим содержимым.

$ cat ostechnix.txt 
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10

Теперь давайте отобразим приведенные выше строки в случайном порядке. Для этого запустите:

$ shuf ostechnix.txt 
line2
line8
line5
line10
line7
line1
line4
line6
line9
line3

Видеть? Приведенная выше команда рандомизировала порядок строк в файле с именем «ostechnix.txt» и вывела результат.

Возможно, вы захотите записать вывод в другой файл. Например, я хочу сохранить выходные данные в файле с именем output.txt. Для этого сначала создайте файл output.txt:

touch output.txt

Затем запишите выходные данные в этот файл, используя флаг -o, как показано ниже.

shuf ostechnix.txt -o output.txt

Приведенная выше команда случайным образом перетасует содержимое файла ostechnix.txt и запишет выходные данные в файл output.txt. Вы можете просмотреть содержимое файла output.txt с помощью команды:

$ cat output.txt

line2
line8
line9
line10
line1
line3
line7
line6
line4
line5

Я просто хочу отобразить любую случайную строку из файла. Как мне это сделать? Простой!

$ shuf -n 1 ostechnix.txt 
line6

Аналогично мы можем выбрать первые случайные записи. Следующая команда отобразит только первые пять случайных записей.

$ shuf -n 5 ostechnix.txt 
line10
line4
line5
line9
line3

Вместо чтения строк из файла мы можем напрямую передавать входные данные, используя флаг -e, как показано ниже.

$ shuf -e line1 line2 line3 line4 line5
line1
line3
line5
line4
line2

Вы также можете перетасовать числа:

$ shuf -e 1 2 3 4 5
3
5
1
4
2

Чтобы быстро выбрать любой из заданного диапазона, используйте вместо этого эту команду.

shuf -n 1 -e 1 2 3 4 5

Или выберите любые три случайных числа, как показано ниже.

$ shuf -n 3 -e 1 2 3 4 5
3
5
1

Мы также можем генерировать случайные числа в определенном диапазоне. Например, чтобы отобразить случайные числа от 1 до 10, просто используйте:

$ shuf -i 1-10
1
9
8
2
4
7
6
3
10
5

Более подробную информацию можно найти на страницах руководства.

man shuf

Статьи по данной тематике