PRF:20180407 The Shuf Command Tutorial With Examples For Beginners.md

@geekpi
This commit is contained in:
Xingyu.Wang 2018-05-13 07:49:03 +08:00
parent 4b71e9e537
commit 6bd200dd0d

View File

@ -1,12 +1,14 @@
给初学者看的 Shuf 命令教程 给初学者看的 shuf 命令教程
====== ======
![](https://www.ostechnix.com/wp-content/uploads/2018/04/shuf-command-720x340.png) ![](https://www.ostechnix.com/wp-content/uploads/2018/04/shuf-command-720x340.png)
Shuf 命令用于在类 Unix 操作系统中生成随机排列。使用 shuf 命令我们可以随机打乱给定输入文件的行。Shuf 命令是 GNU Coreutils 的一部分,因此你不必担心安装问题。在这个简短的教程中,让我向你展示一些 shuf 命令的例子。
### 带例子的 Shuf 命令教程 `shuf` 命令用于在类 Unix 操作系统中生成随机排列。使用 `shuf` 命令,我们可以随机打乱给定输入文件的行。`shuf` 命令是 GNU Coreutils 的一部分,因此你不必担心安装问题。在这个简短的教程中,让我向你展示一些 `shuf` 命令的例子。
### 带例子的 shuf 命令教程
我有一个名为 `ostechnix.txt` 的文件,内容如下:
我有一个名为 **ostechnix.txt** 的文件,内容如下。
``` ```
$ cat ostechnix.txt $ cat ostechnix.txt
line1 line1
@ -19,10 +21,10 @@ line7
line8 line8
line9 line9
line10 line10
``` ```
现在让我们以随机顺序显示上面的行。为此,请运行: 现在让我们以随机顺序显示上面的行。为此,请运行:
``` ```
$ shuf ostechnix.txt $ shuf ostechnix.txt
line2 line2
@ -35,24 +37,24 @@ line4
line6 line6
line9 line9
line3 line3
``` ```
看到了吗?上面的命令将名为 “ostechnix.txt” 中的行随机排列并输出了结果。 看到了吗?上面的命令将名为 `ostechnix.txt` 中的行随机排列并输出了结果。
你可能想将输出写入另一个文件。例如,我想将输出保存到 `output.txt` 中。为此,请先创建 `output.txt`
你可能想将输出写入另一个文件。例如,我想将输出保存到 **output.txt** 中。为此,请先创建 output.txt
``` ```
$ touch output.txt $ touch output.txt
``` ```
然后,像下面使用 **-o** 标志将输出写入该文件。 然后,像下面使用 `-o` 标志将输出写入该文件:
``` ```
$ shuf ostechnix.txt -o output.txt $ shuf ostechnix.txt -o output.txt
``` ```
上面的命令将随机随机打乱 ostechnix.txt 的内容并将输出写入 output.txt。你可以使用命令查看 output.txt 的内容: 上面的命令将随机随机打乱 `ostechnix.txt` 的内容并将输出写入 `output.txt`。你可以使用命令查看 `output.txt` 的内容:
``` ```
$ cat output.txt $ cat output.txt
@ -66,17 +68,17 @@ line7
line6 line6
line4 line4
line5 line5
``` ```
我只想显示文件中的任意一行。我该怎么做?很简单! 我只想显示文件中的任意一行。我该怎么做?很简单!
``` ```
$ shuf -n 1 ostechnix.txt $ shuf -n 1 ostechnix.txt
line6 line6
``` ```
同样,我们可以选择前 “n” 个随机条目。以下命令将只显示前五个随机条目。 同样,我们可以选择前 “n” 个随机条目。以下命令将只显示前五个随机条目:
``` ```
$ shuf -n 5 ostechnix.txt $ shuf -n 5 ostechnix.txt
line10 line10
@ -84,10 +86,10 @@ line4
line5 line5
line9 line9
line3 line3
``` ```
如下所示,我们可以直接使用 **-e** 标志传入输入,而不是从文件中读取行。 如下所示,我们可以直接使用 `-e` 标志传入输入,而不是从文件中读取行:
``` ```
$ shuf -e line1 line2 line3 line4 line5 $ shuf -e line1 line2 line3 line4 line5
line1 line1
@ -95,10 +97,10 @@ line3
line5 line5
line4 line4
line2 line2
``` ```
你也可以传入数字: 你也可以传入数字:
``` ```
$ shuf -e 1 2 3 4 5 $ shuf -e 1 2 3 4 5
3 3
@ -106,25 +108,25 @@ $ shuf -e 1 2 3 4 5
1 1
4 4
2 2
``` ```
要快速在给定范围选择一个,请改用此命令。 要快速在给定范围选择一个,请改用此命令:
``` ```
$ shuf -n 1 -e 1 2 3 4 5 $ shuf -n 1 -e 1 2 3 4 5
``` ```
或者,选择下面的任意三个随机数字。 或者,选择下面的任意三个随机数字:
``` ```
$ shuf -n 3 -e 1 2 3 4 5 $ shuf -n 3 -e 1 2 3 4 5
3 3
5 5
1 1
``` ```
我们也可以在特定范围内生成随机数。例如,要显示 1 到 10 之间的随机数,只需使用: 我们也可以在特定范围内生成随机数。例如,要显示 1 到 10 之间的随机数,只需使用:
``` ```
$ shuf -i 1-10 $ shuf -i 1-10
1 1
@ -137,29 +139,26 @@ $ shuf -i 1-10
3 3
10 10
5 5
``` ```
有关更多详细信息,请参阅手册页。 有关更多详细信息,请参阅手册页。
``` ```
$ man shuf $ man shuf
``` ```
今天就是这些。还有更多更好的东西。敬请关注! 今天就是这些。还有更多更好的东西。敬请关注!
干杯! 干杯!
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
via: https://www.ostechnix.com/the-shuf-command-tutorial-with-examples-for-beginners/ via: https://www.ostechnix.com/the-shuf-command-tutorial-with-examples-for-beginners/
作者:[SK][a] 作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
选题:[lujun9972](https://github.com/lujun9972) 选题:[lujun9972](https://github.com/lujun9972)
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出