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,如下图所示:
shuf 命令的使用方法:
1.文件洗牌
shuf [option] [file]
当以上述形式使用 shuf 命令时,即没有 -e 或 -i 选项,则它作为文件 shuf 运行,即,它对文件的内容进行混洗。 file_name 是 shuf 命令的最后一个参数,如果没有给出,则必须从 shell 或管道提供输入。
考虑一个从文件中获取输入的示例:
shuf file.txt
假设 file.txt 包含 6 行,那么 shuf 命令以随机顺序显示输入行作为输出。
可以使用 -n 选项随机化任意数量的行。
shuf -n 2 file.txt
这将显示文件中的任意两条随机行。
考虑一个从管道中获取输入的示例:
{
seq 5 | shuf
}
seq 5 依次返回从 1 到 5 的整数,而 shuf 命令将其作为输入并打乱内容,即从 1 到 5 的整数。因此,1 到 5 以随机顺序显示为输出。
2.列表切换
shuf -e [OPTION]... [ARG]
当 -e 选项与 shuf 命令一起使用时,它用作列表 shuf。命令的参数被作为 shuf 的输入行。
考虑一个例子:
shuf -e A B C D E
它将以 A、B、C、D、E 作为输入行,并将它们打乱以显示输出
使用 -n 选项和 -e 选项可以显示任意数量的输入行。
shuf -e -n 1 A B C D E
这将显示任何一个输入。
3. 范围切换
shuf -i LO-HI [OPTION]
当 -i 选项与 shuf 命令一起使用时,它充当范围 shuf。它需要一个输入范围作为输入,其中 L0 是下限而 HI 是上限。它以混洗形式显示 L0-HI 中的整数。