用 shuf 随机挑选行或数字
从文件、参数列表或数字范围中随机抽取或乱序输出——coreutils 自带的万能随机工具。
执行 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 102作用说明
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风险
!注意: shuf 按行打乱,所以含空格的多词条目没问题,但条目内部不能包含换行符——请保证输入文件中每个条目独占一行。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- shuf(1) — Linux manual page依据: 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 · 分类: 开发者