📜  Linux 中的 shuf 命令及示例

📅  最后修改于: 2022-05-13 01:57:34.057000             🧑  作者: Mango

Linux 中的 shuf 命令及示例

Linux 中的 shuf 命令将输入行的随机排列写入标准输出。它以与洗牌相同的方式伪随机化输入。它是 GNU Coreutils 的一部分,而不是 POSIX 的一部分。此命令从文件或 bash 中的标准输入读取,并随机化这些输入行并显示输出。与其他 Linux 命令一样, shuf 命令带有 –help 选项。

句法:

shuf [OPTION] [FILE] //file shuf
shuf -i LO-HI [OPTION] // range shuf
shuf -e [OPTION]... [ARG] //list shuf

shuf 命令没有任何选项或参数。

shuf

当在命令行中不带任何参数使用 shuf 命令时,它会接受用户的输入,直到输入 CTRL-D 以终止输入集。它以无序的形式显示输入行。如果输入 1、2 和 3 作为输入行,则会在输出中以随机顺序生成 1.2 和 3,如下图所示:

linux下的shuf命令

shuf 命令的使用方法:

1.文件洗牌



shuf [option] [file]

当以上述形式使用 shuf 命令时,即没有 -e 或 -i 选项,则它作为文件 shuf 运行,即,它对文件的内容进行混洗。 file_name 是 shuf 命令的最后一个参数,如果没有给出,则必须从 shell 或管道提供输入。

考虑一个从文件中获取输入的示例:

shuf file.txt

假设 file.txt 包含 6 行,那么 shuf 命令以随机顺序显示输入行作为输出。

Linux 中的文件 shuf

可以使用 -n 选项随机化任意数量的行。

shuf -n 2 file.txt

这将显示文件中的任意两条随机行。

显示文件中的任意两行

考虑一个从管道中获取输入的示例:



{
seq 5 | shuf
}

seq 5 依次返回从 1 到 5 的整数,而 shuf 命令将其作为输入并打乱内容,即从 1 到 5 的整数。因此,1 到 5 以随机顺序显示为输出。

fule shuf 命令与 seq 命令结合

2.列表切换

shuf -e [OPTION]... [ARG]

当 -e 选项与 shuf 命令一起使用时,它用作列表 shuf。命令的参数被作为 shuf 的输入行。

考虑一个例子:

shuf -e A B C D E

它将以 A、B、C、D、E 作为输入行,并将它们打乱以显示输出

在 Linux 中列出 shuf

使用 -n 选项和 -e 选项可以显示任意数量的输入行。

shuf -e -n 1 A B C D E

这将显示任何一个输入。

列表切换

3. 范围切换

shuf -i LO-HI [OPTION]

当 -i 选项与 shuf 命令一起使用时,它充当范围 shuf。它需要一个输入范围作为输入,其中 L0 是下限而 HI 是上限。它以混洗形式显示 L0-HI 中的整数。

范围切换