Shuf命令

时间:2020-03-21 11:47:25  来源:igfitidea点击:

Shuf命令用于在类似Unix的操作系统中生成随机排列。
使用shuf命令,我们可以随机调整给定输入文件的行。
Shuf命令是GNU Coreutils的一部分,因此我们不必费心安装。
在此教程中,让我向我们展示shuf命令的一些示例。

Shuf命令示例

我有一个名为theitroad.txt的文件,其中包含以下内容。

$cat theitroad.txt 
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10

现在让我们以随机顺序显示以上几行。
为此,请运行:

$shuf theitroad.txt 
line2
line8
line5
line10
line7
line1
line4
line6
line9
line3

看到了吗?
上面的命令在名为“ theitroad.txt”的文件中随机排列行的顺序,并输出结果。

我们可能需要将输出写入另一个文件。
例如,我想将输出保存在名为output.txt的文件中。
为此,首先创建output.txt文件:

$touch output.txt

然后,使用-o标志将输出写入该文件,如下所示。

$shuf theitroad.txt -o output.txt

上面的命令将随机随机播放theitroad.txt文件的内容,并将输出写入output.txt文件。
我们可以使用以下命令查看output.txt文件的内容:

$cat output.txt
line2
line8
line9
line10
line1
line3
line7
line6
line4
line5

我只想显示文件中的任意一行。
我该怎么做?
简单的!

$shuf -n 1 theitroad.txt 
line6

同样,我们可以选择前“ n”个随机条目。
以下命令将仅显示前五个随机条目。

$shuf -n 5 theitroad.txt 
line10
line4
line5
line9
line3

无需从文件中读取行,我们可以使用-e标志直接传递输入,如下所示。

$shuf -e line1 line2 line3 line4 line5
line1
line3
line5
line4
line2

我们也可以传递随机数字:

$shuf -e 1 2 3 4 5
3
5
1
4
2

要快速从给定范围中选择任何一个,请改用此命令。

$shuf -n 1 -e 1 2 3 4 5

或者,选择任意三个如下所示的随机数。

$shuf -n 3 -e 1 2 3 4 5
3
5
1

我们还可以生成特定范围内的随机数。
例如,要显示1到10之间的随机数,只需使用:

$shuf -i 1-10
1
9
8
2
4
7
6
3
10
5

有关更多详细信息,请参见手册页。

$man shuf