Учебное пособие по команде 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
Аналогично мы можем выбрать первые n» случайные записи. Следующая команда отобразит только первые пять случайных записей.
$ 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