用 shuf 随机挑选行或数字

从文件、参数列表或数字范围中随机抽取或乱序输出——coreutils 自带的万能随机工具。

Linuxshuf 随机排序随机Shell命令行低风险
执行 shuf -n 3 names.txt 从文件中随机抽取 3 行,或执行 shuf -i 1-100 -n 1 在 1 到 100 之间随机取一个数。

01命令

命令
$ shuf -n 3 names.txt && shuf -e --repeat -n 5 A B C D E F && seq 1 100 | shuf -n 1

02作用说明

shuf 逐行读取输入并随机乱序输出;-n 限制只输出前 N 个随机结果,而不是整个打乱后的列表。-e 可以直接随机化命令行上输入的条目,--repeat 允许同一项被重复抽中(有放回抽样),-i 1-100 则从数字范围中选取——掷骰子、抽奖都不用写脚本。它与其他工具组合非常自然:seq 1 100 | shuf -n 1、shuf -n 5 songs.txt | mpv --playlist=- 随机播五首歌,或 shuf -n 1 users.txt 抽取中奖用户。

03风险

风险低风险
使用条件coreutils (preinstalled on all Linux distributions)
!注意: shuf 按行打乱,所以含空格的多词条目没问题,但条目内部不能包含换行符——请保证输入文件中每个条目独占一行。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • shuf(1) — Linux manual page
    man7.org · community · 2026-09-17
    依据: shuf generates random permutations: -n outputs N lines, -e treats operands as items, --repeat allows picking the same item more than once, -i picks from an integer range.

最后验证: 2026-09-18 · 分类: 开发者