小编典典

如何在 Unix 命令行或 shell 脚本中打乱文本文件的行?

all

我想随机打乱文本文件的行并创建一个新文件。该文件可能有数千行。

我怎么能用cat, awk,cut等来做到这一点?


阅读 92

收藏
2022-04-13

共1个答案

小编典典

您可以使用shuf. 至少在某些系统上(似乎不在 POSIX 中)。

正如 jleedev 指出的那样:sort-R也可能是一种选择。至少在某些系统上;好吧,你明白了。有人指出,这sort -R并没有真正洗牌,而是根据它们的哈希值对项目进行排序。

[编者注:sort -R 几乎是 洗牌,除了 重复 的行/排序键总是 彼此相邻 。换句话说:只有 唯一的
输入行/键才是真正的随机播放。虽然输出顺序确实由 哈希值 决定,但随机性来自选择随机哈希 函数 -
请参阅手册。]

2022-04-13